From a77812935e6aff6c2d303f7abaaeaccf2c04e841 Mon Sep 17 00:00:00 2001 From: Anton Sidelnikov <53078276+anton-sidelnikov@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:05:11 +0100 Subject: [PATCH] feat: loadbalancer v3 configurations removed v2 version (#19) --- Makefile | 4 +- apis/cce/v1alpha1/zz_clusterv3_types.go | 19 + apis/cce/v1alpha1/zz_generated.deepcopy.go | 48 + apis/cce/v1alpha1/zz_nodepoolv3_types.go | 16 + apis/ecs/v1alpha1/zz_generated.deepcopy.go | 111 + apis/ecs/v1alpha1/zz_instancev1_types.go | 51 +- .../v1alpha1/zz_certificatev2_terraformed.go | 129 - apis/lb/v1alpha1/zz_certificatev2_types.go | 184 - .../v1alpha1/zz_generated.conversion_hubs.go | 27 - apis/lb/v1alpha1/zz_generated.deepcopy.go | 5293 +++++------------ apis/lb/v1alpha1/zz_generated.managed.go | 540 -- apis/lb/v1alpha1/zz_generated.managedlist.go | 81 - apis/lb/v1alpha1/zz_generated.resolvers.go | 978 +++ apis/lb/v1alpha1/zz_ipgroupv3_types.go | 40 +- apis/lb/v1alpha1/zz_l7policyv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_l7policyv2_types.go | 219 - apis/lb/v1alpha1/zz_l7rulev2_terraformed.go | 129 - apis/lb/v1alpha1/zz_l7rulev2_types.go | 201 - apis/lb/v1alpha1/zz_listenerv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_listenerv2_types.go | 398 -- apis/lb/v1alpha1/zz_listenerv3_types.go | 217 +- .../v1alpha1/zz_loadbalancerv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_loadbalancerv2_types.go | 207 - apis/lb/v1alpha1/zz_loadbalancerv3_types.go | 75 +- apis/lb/v1alpha1/zz_memberv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_memberv2_types.go | 205 - apis/lb/v1alpha1/zz_memberv3_types.go | 55 +- apis/lb/v1alpha1/zz_monitorv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_monitorv2_types.go | 274 - apis/lb/v1alpha1/zz_monitorv3_types.go | 37 +- apis/lb/v1alpha1/zz_policyv3_types.go | 93 +- apis/lb/v1alpha1/zz_poolv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_poolv2_types.go | 251 - apis/lb/v1alpha1/zz_poolv3_types.go | 72 + apis/lb/v1alpha1/zz_rulev3_types.go | 37 +- .../lb/v1alpha1/zz_whitelistv2_terraformed.go | 129 - apis/lb/v1alpha1/zz_whitelistv2_types.go | 137 - config/external_name.go | 9 - config/lb/config.go | 122 +- config/provider-metadata.yaml | 934 ++- config/schema.json | 2 +- .../lb/v1alpha1/certificatev2.yaml | 64 - examples-generated/lb/v1alpha1/ipgroupv3.yaml | 12 +- .../lb/v1alpha1/l7policyv2.yaml | 65 - examples-generated/lb/v1alpha1/l7rulev2.yaml | 82 - .../lb/v1alpha1/listenerv2.yaml | 15 - .../lb/v1alpha1/listenerv3.yaml | 4 +- .../lb/v1alpha1/loadbalancerv2.yaml | 13 - .../lb/v1alpha1/loadbalancerv3.yaml | 8 +- examples-generated/lb/v1alpha1/memberv2.yaml | 14 - examples-generated/lb/v1alpha1/memberv3.yaml | 16 +- examples-generated/lb/v1alpha1/monitorv2.yaml | 16 - examples-generated/lb/v1alpha1/monitorv3.yaml | 16 +- examples-generated/lb/v1alpha1/policyv3.yaml | 24 +- examples-generated/lb/v1alpha1/poolv2.yaml | 16 - examples-generated/lb/v1alpha1/poolv3.yaml | 12 +- examples-generated/lb/v1alpha1/rulev3.yaml | 28 +- .../lb/v1alpha1/whitelistv2.yaml | 13 - .../vpcep/v1alpha1/endpointv1.yaml | 14 - .../vpcep/v1alpha1/servicev1.yaml | 14 - examples/lb/listener_and_ipgroup.yaml | 101 + examples/lb/loadbalancer.yaml | 82 + examples/lb/policy_and_rule.yaml | 139 + examples/lb/pool_and_monitor.yaml | 118 + .../lb/certificatev2/zz_controller.go | 87 - .../controller/lb/l7policyv2/zz_controller.go | 87 - .../controller/lb/l7rulev2/zz_controller.go | 87 - .../controller/lb/listenerv2/zz_controller.go | 87 - .../lb/loadbalancerv2/zz_controller.go | 87 - .../controller/lb/memberv2/zz_controller.go | 87 - .../controller/lb/monitorv2/zz_controller.go | 87 - .../controller/lb/poolv2/zz_controller.go | 87 - .../lb/whitelistv2/zz_controller.go | 87 - internal/controller/zz_setup.go | 18 - ...telekomcloud.crossplane.io_clusterv3s.yaml | 21 + ...elekomcloud.crossplane.io_nodepoolv3s.yaml | 24 + ...elekomcloud.crossplane.io_instancev1s.yaml | 59 +- ...komcloud.crossplane.io_certificatev2s.yaml | 436 -- ...telekomcloud.crossplane.io_ipgroupv3s.yaml | 300 + ...elekomcloud.crossplane.io_l7policyv2s.yaml | 483 -- ...ntelekomcloud.crossplane.io_l7rulev2s.yaml | 470 -- ...elekomcloud.crossplane.io_listenerv2s.yaml | 695 --- ...elekomcloud.crossplane.io_listenerv3s.yaml | 752 ++- ...omcloud.crossplane.io_loadbalancerv2s.yaml | 466 -- ...omcloud.crossplane.io_loadbalancerv3s.yaml | 604 +- ...ntelekomcloud.crossplane.io_memberv2s.yaml | 467 -- ...ntelekomcloud.crossplane.io_memberv3s.yaml | 452 +- ...telekomcloud.crossplane.io_monitorv2s.yaml | 549 -- ...telekomcloud.crossplane.io_monitorv3s.yaml | 304 +- ...ntelekomcloud.crossplane.io_policyv3s.yaml | 748 ++- ...pentelekomcloud.crossplane.io_poolv2s.yaml | 513 -- ...pentelekomcloud.crossplane.io_poolv3s.yaml | 596 ++ ...pentelekomcloud.crossplane.io_rulev3s.yaml | 304 +- ...lekomcloud.crossplane.io_whitelistv2s.yaml | 386 -- 94 files changed, 8937 insertions(+), 13477 deletions(-) delete mode 100755 apis/lb/v1alpha1/zz_certificatev2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_certificatev2_types.go create mode 100644 apis/lb/v1alpha1/zz_generated.resolvers.go delete mode 100755 apis/lb/v1alpha1/zz_l7policyv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_l7policyv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_l7rulev2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_l7rulev2_types.go delete mode 100755 apis/lb/v1alpha1/zz_listenerv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_listenerv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_loadbalancerv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_loadbalancerv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_memberv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_memberv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_monitorv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_monitorv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_poolv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_poolv2_types.go delete mode 100755 apis/lb/v1alpha1/zz_whitelistv2_terraformed.go delete mode 100755 apis/lb/v1alpha1/zz_whitelistv2_types.go delete mode 100644 examples-generated/lb/v1alpha1/certificatev2.yaml delete mode 100644 examples-generated/lb/v1alpha1/l7policyv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/l7rulev2.yaml delete mode 100644 examples-generated/lb/v1alpha1/listenerv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/loadbalancerv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/memberv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/monitorv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/poolv2.yaml delete mode 100644 examples-generated/lb/v1alpha1/whitelistv2.yaml create mode 100644 examples/lb/listener_and_ipgroup.yaml create mode 100644 examples/lb/loadbalancer.yaml create mode 100644 examples/lb/policy_and_rule.yaml create mode 100644 examples/lb/pool_and_monitor.yaml delete mode 100755 internal/controller/lb/certificatev2/zz_controller.go delete mode 100755 internal/controller/lb/l7policyv2/zz_controller.go delete mode 100755 internal/controller/lb/l7rulev2/zz_controller.go delete mode 100755 internal/controller/lb/listenerv2/zz_controller.go delete mode 100755 internal/controller/lb/loadbalancerv2/zz_controller.go delete mode 100755 internal/controller/lb/memberv2/zz_controller.go delete mode 100755 internal/controller/lb/monitorv2/zz_controller.go delete mode 100755 internal/controller/lb/poolv2/zz_controller.go delete mode 100755 internal/controller/lb/whitelistv2/zz_controller.go delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_certificatev2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_l7policyv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_l7rulev2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_listenerv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_memberv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_monitorv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_poolv2s.yaml delete mode 100644 package/crds/lb.opentelekomcloud.crossplane.io_whitelistv2s.yaml diff --git a/Makefile b/Makefile index 0873619..c901ad4 100644 --- a/Makefile +++ b/Makefile @@ -12,11 +12,11 @@ TERRAFORM_VERSION_VALID := $(shell [ "$(TERRAFORM_VERSION)" = "`printf "$(TERRAF export TERRAFORM_PROVIDER_SOURCE ?= opentelekomcloud/opentelekomcloud export TERRAFORM_PROVIDER_REPO ?= https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud -export TERRAFORM_PROVIDER_VERSION ?= 1.36.20 +export TERRAFORM_PROVIDER_VERSION ?= 1.36.23 export TERRAFORM_PROVIDER_DOWNLOAD_NAME ?= terraform-provider-opentelekomcloud export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX ?= https://github.com/opentelekomcloud/$(TERRAFORM_PROVIDER_DOWNLOAD_NAME)/releases/download/v$(TERRAFORM_PROVIDER_VERSION) # export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX ?= https://releases.hashicorp.com/$(TERRAFORM_PROVIDER_DOWNLOAD_NAME)/$(TERRAFORM_PROVIDER_VERSION) -export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-opentelekomcloud_v1.36.14 +export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-opentelekomcloud_v1.36.23 export TERRAFORM_DOCS_PATH ?= docs/resources diff --git a/apis/cce/v1alpha1/zz_clusterv3_types.go b/apis/cce/v1alpha1/zz_clusterv3_types.go index 0ff60ef..cedeff9 100755 --- a/apis/cce/v1alpha1/zz_clusterv3_types.go +++ b/apis/cce/v1alpha1/zz_clusterv3_types.go @@ -251,6 +251,12 @@ type ClusterV3InitParameters struct { Region *string `json:"region,omitempty" tf:"region,omitempty"` + // Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + // Otherwise, the system will automatically create a default worker node security group for you. + // The default worker node security group needs to allow access from certain ports to ensure normal communications. + // Changing this parameter will create a new cluster resource. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + // The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractNetworkID() @@ -423,6 +429,12 @@ type ClusterV3Observation struct { // ID of the autogenerated security group for the CCE master port. SecurityGroupControl *string `json:"securityGroupControl,omitempty" tf:"security_group_control,omitempty"` + // Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + // Otherwise, the system will automatically create a default worker node security group for you. + // The default worker node security group needs to allow access from certain ports to ensure normal communications. + // Changing this parameter will create a new cluster resource. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + // ID of the autogenerated security group for the CCE nodes. SecurityGroupNode *string `json:"securityGroupNode,omitempty" tf:"security_group_node,omitempty"` @@ -634,6 +646,13 @@ type ClusterV3Parameters struct { // +kubebuilder:validation:Optional Region *string `json:"region,omitempty" tf:"region,omitempty"` + // Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + // Otherwise, the system will automatically create a default worker node security group for you. + // The default worker node security group needs to allow access from certain ports to ensure normal communications. + // Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + // The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractNetworkID() diff --git a/apis/cce/v1alpha1/zz_generated.deepcopy.go b/apis/cce/v1alpha1/zz_generated.deepcopy.go index 3ed197d..7d2b1b2 100644 --- a/apis/cce/v1alpha1/zz_generated.deepcopy.go +++ b/apis/cce/v1alpha1/zz_generated.deepcopy.go @@ -743,6 +743,11 @@ func (in *ClusterV3InitParameters) DeepCopyInto(out *ClusterV3InitParameters) { *out = new(string) **out = **in } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } if in.SubnetID != nil { in, out := &in.SubnetID, &out.SubnetID *out = new(string) @@ -1080,6 +1085,11 @@ func (in *ClusterV3Observation) DeepCopyInto(out *ClusterV3Observation) { *out = new(string) **out = **in } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } if in.SecurityGroupNode != nil { in, out := &in.SecurityGroupNode, &out.SecurityGroupNode *out = new(string) @@ -1365,6 +1375,11 @@ func (in *ClusterV3Parameters) DeepCopyInto(out *ClusterV3Parameters) { *out = new(string) **out = **in } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } if in.SubnetID != nil { in, out := &in.SubnetID, &out.SubnetID *out = new(string) @@ -1805,6 +1820,17 @@ func (in *NodePoolV3InitParameters) DeepCopyInto(out *NodePoolV3InitParameters) *out = new(bool) **out = **in } + if in.SecurityGroupIds != nil { + in, out := &in.SecurityGroupIds, &out.SecurityGroupIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.ServerGroupReference != nil { in, out := &in.ServerGroupReference, &out.ServerGroupReference *out = new(string) @@ -2030,6 +2056,17 @@ func (in *NodePoolV3Observation) DeepCopyInto(out *NodePoolV3Observation) { *out = new(bool) **out = **in } + if in.SecurityGroupIds != nil { + in, out := &in.SecurityGroupIds, &out.SecurityGroupIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.ServerGroupReference != nil { in, out := &in.ServerGroupReference, &out.ServerGroupReference *out = new(string) @@ -2248,6 +2285,17 @@ func (in *NodePoolV3Parameters) DeepCopyInto(out *NodePoolV3Parameters) { *out = new(bool) **out = **in } + if in.SecurityGroupIds != nil { + in, out := &in.SecurityGroupIds, &out.SecurityGroupIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.ServerGroupReference != nil { in, out := &in.ServerGroupReference, &out.ServerGroupReference *out = new(string) diff --git a/apis/cce/v1alpha1/zz_nodepoolv3_types.go b/apis/cce/v1alpha1/zz_nodepoolv3_types.go index 931574b..df1a4de 100755 --- a/apis/cce/v1alpha1/zz_nodepoolv3_types.go +++ b/apis/cce/v1alpha1/zz_nodepoolv3_types.go @@ -209,6 +209,11 @@ type NodePoolV3InitParameters struct { // Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature. ScaleEnable *bool `json:"scaleEnable,omitempty" tf:"scale_enable,omitempty"` + // Specifies the list of custom security group IDs for the node pool. + // If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + // the rules of the port on which CCE running depends. + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + // ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. ServerGroupReference *string `json:"serverGroupReference,omitempty" tf:"server_group_reference,omitempty"` @@ -322,6 +327,11 @@ type NodePoolV3Observation struct { // Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature. ScaleEnable *bool `json:"scaleEnable,omitempty" tf:"scale_enable,omitempty"` + // Specifies the list of custom security group IDs for the node pool. + // If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + // the rules of the port on which CCE running depends. + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + // ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. ServerGroupReference *string `json:"serverGroupReference,omitempty" tf:"server_group_reference,omitempty"` @@ -480,6 +490,12 @@ type NodePoolV3Parameters struct { // +kubebuilder:validation:Optional ScaleEnable *bool `json:"scaleEnable,omitempty" tf:"scale_enable,omitempty"` + // Specifies the list of custom security group IDs for the node pool. + // If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + // the rules of the port on which CCE running depends. + // +kubebuilder:validation:Optional + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + // ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. // +kubebuilder:validation:Optional ServerGroupReference *string `json:"serverGroupReference,omitempty" tf:"server_group_reference,omitempty"` diff --git a/apis/ecs/v1alpha1/zz_generated.deepcopy.go b/apis/ecs/v1alpha1/zz_generated.deepcopy.go index d88a558..55c79bb 100644 --- a/apis/ecs/v1alpha1/zz_generated.deepcopy.go +++ b/apis/ecs/v1alpha1/zz_generated.deepcopy.go @@ -244,6 +244,13 @@ func (in *InstanceV1InitParameters) DeepCopyInto(out *InstanceV1InitParameters) (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.OsSchedulerHints != nil { + in, out := &in.OsSchedulerHints, &out.OsSchedulerHints + *out = make([]OsSchedulerHintsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PasswordSecretRef != nil { in, out := &in.PasswordSecretRef, &out.PasswordSecretRef *out = new(v1.SecretKeySelector) @@ -422,6 +429,13 @@ func (in *InstanceV1Observation) DeepCopyInto(out *InstanceV1Observation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.OsSchedulerHints != nil { + in, out := &in.OsSchedulerHints, &out.OsSchedulerHints + *out = make([]OsSchedulerHintsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.SecurityGroups != nil { in, out := &in.SecurityGroups, &out.SecurityGroups *out = make([]*string, len(*in)) @@ -572,6 +586,13 @@ func (in *InstanceV1Parameters) DeepCopyInto(out *InstanceV1Parameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.OsSchedulerHints != nil { + in, out := &in.OsSchedulerHints, &out.OsSchedulerHints + *out = make([]OsSchedulerHintsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PasswordSecretRef != nil { in, out := &in.PasswordSecretRef, &out.PasswordSecretRef *out = new(v1.SecretKeySelector) @@ -806,6 +827,96 @@ func (in *NicsParameters) DeepCopy() *NicsParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OsSchedulerHintsInitParameters) DeepCopyInto(out *OsSchedulerHintsInitParameters) { + *out = *in + if in.DedicatedHostID != nil { + in, out := &in.DedicatedHostID, &out.DedicatedHostID + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Tenancy != nil { + in, out := &in.Tenancy, &out.Tenancy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OsSchedulerHintsInitParameters. +func (in *OsSchedulerHintsInitParameters) DeepCopy() *OsSchedulerHintsInitParameters { + if in == nil { + return nil + } + out := new(OsSchedulerHintsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OsSchedulerHintsObservation) DeepCopyInto(out *OsSchedulerHintsObservation) { + *out = *in + if in.DedicatedHostID != nil { + in, out := &in.DedicatedHostID, &out.DedicatedHostID + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Tenancy != nil { + in, out := &in.Tenancy, &out.Tenancy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OsSchedulerHintsObservation. +func (in *OsSchedulerHintsObservation) DeepCopy() *OsSchedulerHintsObservation { + if in == nil { + return nil + } + out := new(OsSchedulerHintsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OsSchedulerHintsParameters) DeepCopyInto(out *OsSchedulerHintsParameters) { + *out = *in + if in.DedicatedHostID != nil { + in, out := &in.DedicatedHostID, &out.DedicatedHostID + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Tenancy != nil { + in, out := &in.Tenancy, &out.Tenancy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OsSchedulerHintsParameters. +func (in *OsSchedulerHintsParameters) DeepCopy() *OsSchedulerHintsParameters { + if in == nil { + return nil + } + out := new(OsSchedulerHintsParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VolumesAttachedInitParameters) DeepCopyInto(out *VolumesAttachedInitParameters) { *out = *in diff --git a/apis/ecs/v1alpha1/zz_instancev1_types.go b/apis/ecs/v1alpha1/zz_instancev1_types.go index b8a3f1c..ddf30eb 100755 --- a/apis/ecs/v1alpha1/zz_instancev1_types.go +++ b/apis/ecs/v1alpha1/zz_instancev1_types.go @@ -147,6 +147,9 @@ type InstanceV1InitParameters struct { // creates a new server. Nics []NicsInitParameters `json:"nics,omitempty" tf:"nics,omitempty"` + // Schedules ECSs, for example, by configuring an ECS group. The os_scheduler_hints object structure is documented below. Changing this creates a new server. + OsSchedulerHints []OsSchedulerHintsInitParameters `json:"osSchedulerHints,omitempty" tf:"os_scheduler_hints,omitempty"` + // The administrative password to assign to the server. // Changing this creates a new server. PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` @@ -241,13 +244,16 @@ type InstanceV1Observation struct { // creates a new server. Nics []NicsObservation `json:"nics,omitempty" tf:"nics,omitempty"` + // Schedules ECSs, for example, by configuring an ECS group. The os_scheduler_hints object structure is documented below. Changing this creates a new server. + OsSchedulerHints []OsSchedulerHintsObservation `json:"osSchedulerHints,omitempty" tf:"os_scheduler_hints,omitempty"` + // An array of one or more security group IDs // to associate with the server. If this parameter is left blank, the default // security group is bound to the ECS by default. // +listType=set SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` - // The ID of the system disk. + // (String) The ID of the system disk. SystemDiskID *string `json:"systemDiskId,omitempty" tf:"system_disk_id,omitempty"` // The Encryption KMS ID of the system disk. Changing this @@ -339,6 +345,10 @@ type InstanceV1Parameters struct { // +kubebuilder:validation:Optional Nics []NicsParameters `json:"nics,omitempty" tf:"nics,omitempty"` + // Schedules ECSs, for example, by configuring an ECS group. The os_scheduler_hints object structure is documented below. Changing this creates a new server. + // +kubebuilder:validation:Optional + OsSchedulerHints []OsSchedulerHintsParameters `json:"osSchedulerHints,omitempty" tf:"os_scheduler_hints,omitempty"` + // The administrative password to assign to the server. // Changing this creates a new server. // +kubebuilder:validation:Optional @@ -462,6 +472,45 @@ type NicsParameters struct { NetworkIDSelector *v1.Selector `json:"networkIdSelector,omitempty" tf:"-"` } +type OsSchedulerHintsInitParameters struct { + + // Specifies the dedicated host ID. A Dedicated Host ID takes effect only when tenancy is set to dedicated. + DedicatedHostID *string `json:"dedicatedHostId,omitempty" tf:"dedicated_host_id,omitempty"` + + // Specifies the ECS group ID in UUID format. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // Creates ECSs on a dedicated or shared host. Available options are: dedicated or shared. + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + +type OsSchedulerHintsObservation struct { + + // Specifies the dedicated host ID. A Dedicated Host ID takes effect only when tenancy is set to dedicated. + DedicatedHostID *string `json:"dedicatedHostId,omitempty" tf:"dedicated_host_id,omitempty"` + + // Specifies the ECS group ID in UUID format. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // Creates ECSs on a dedicated or shared host. Available options are: dedicated or shared. + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + +type OsSchedulerHintsParameters struct { + + // Specifies the dedicated host ID. A Dedicated Host ID takes effect only when tenancy is set to dedicated. + // +kubebuilder:validation:Optional + DedicatedHostID *string `json:"dedicatedHostId,omitempty" tf:"dedicated_host_id,omitempty"` + + // Specifies the ECS group ID in UUID format. + // +kubebuilder:validation:Optional + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // Creates ECSs on a dedicated or shared host. Available options are: dedicated or shared. + // +kubebuilder:validation:Optional + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + type VolumesAttachedInitParameters struct { } diff --git a/apis/lb/v1alpha1/zz_certificatev2_terraformed.go b/apis/lb/v1alpha1/zz_certificatev2_terraformed.go deleted file mode 100755 index d66b94d..0000000 --- a/apis/lb/v1alpha1/zz_certificatev2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this CertificateV2 -func (mg *CertificateV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_certificate_v2" -} - -// GetConnectionDetailsMapping for this CertificateV2 -func (tr *CertificateV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this CertificateV2 -func (tr *CertificateV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this CertificateV2 -func (tr *CertificateV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this CertificateV2 -func (tr *CertificateV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this CertificateV2 -func (tr *CertificateV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this CertificateV2 -func (tr *CertificateV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this CertificateV2 -func (tr *CertificateV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this CertificateV2 -func (tr *CertificateV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this CertificateV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *CertificateV2) LateInitialize(attrs []byte) (bool, error) { - params := &CertificateV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *CertificateV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_certificatev2_types.go b/apis/lb/v1alpha1/zz_certificatev2_types.go deleted file mode 100755 index fba4317..0000000 --- a/apis/lb/v1alpha1/zz_certificatev2_types.go +++ /dev/null @@ -1,184 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type CertificateV2InitParameters struct { - - // The public encrypted key of the Certificate, PEM format. - Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` - - // Human-readable description for the Certificate. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The domain of the Certificate. - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - - // Human-readable name for the Certificate. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The private encrypted key of the Certificate, PEM format. - // Required for certificates of type server. - PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` - - // The region in which to obtain the V2 Networking client. - // A Networking client is needed to create an LB certificate. If omitted, the - // region argument of the provider is used. Changing this creates a new - // LB certificate. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The type of certificate the container holds. Either server or client. - // Defaults to server if not set. Changing this creates a new LB certificate. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type CertificateV2Observation struct { - - // The public encrypted key of the Certificate, PEM format. - Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` - - // Indicates the creation time. - CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` - - // Human-readable description for the Certificate. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The domain of the Certificate. - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - - // Indicates certificate expiration time. - ExpireTime *string `json:"expireTime,omitempty" tf:"expire_time,omitempty"` - - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Human-readable name for the Certificate. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The private encrypted key of the Certificate, PEM format. - // Required for certificates of type server. - PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` - - // The region in which to obtain the V2 Networking client. - // A Networking client is needed to create an LB certificate. If omitted, the - // region argument of the provider is used. Changing this creates a new - // LB certificate. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The type of certificate the container holds. Either server or client. - // Defaults to server if not set. Changing this creates a new LB certificate. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Indicates the update time. - UpdateTime *string `json:"updateTime,omitempty" tf:"update_time,omitempty"` -} - -type CertificateV2Parameters struct { - - // The public encrypted key of the Certificate, PEM format. - // +kubebuilder:validation:Optional - Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` - - // Human-readable description for the Certificate. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The domain of the Certificate. - // +kubebuilder:validation:Optional - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - - // Human-readable name for the Certificate. Does not have - // to be unique. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The private encrypted key of the Certificate, PEM format. - // Required for certificates of type server. - // +kubebuilder:validation:Optional - PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` - - // The region in which to obtain the V2 Networking client. - // A Networking client is needed to create an LB certificate. If omitted, the - // region argument of the provider is used. Changing this creates a new - // LB certificate. - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The type of certificate the container holds. Either server or client. - // Defaults to server if not set. Changing this creates a new LB certificate. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -// CertificateV2Spec defines the desired state of CertificateV2 -type CertificateV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider CertificateV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider CertificateV2InitParameters `json:"initProvider,omitempty"` -} - -// CertificateV2Status defines the observed state of CertificateV2. -type CertificateV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider CertificateV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// CertificateV2 is the Schema for the CertificateV2s API. Manages a ELB Certificate resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type CertificateV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.certificate) || (has(self.initProvider) && has(self.initProvider.certificate))",message="spec.forProvider.certificate is a required parameter" - Spec CertificateV2Spec `json:"spec"` - Status CertificateV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// CertificateV2List contains a list of CertificateV2s -type CertificateV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []CertificateV2 `json:"items"` -} - -// Repository type metadata. -var ( - CertificateV2_Kind = "CertificateV2" - CertificateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: CertificateV2_Kind}.String() - CertificateV2_KindAPIVersion = CertificateV2_Kind + "." + CRDGroupVersion.String() - CertificateV2_GroupVersionKind = CRDGroupVersion.WithKind(CertificateV2_Kind) -) - -func init() { - SchemeBuilder.Register(&CertificateV2{}, &CertificateV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_generated.conversion_hubs.go b/apis/lb/v1alpha1/zz_generated.conversion_hubs.go index 65b7d3a..9555dc8 100755 --- a/apis/lb/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/lb/v1alpha1/zz_generated.conversion_hubs.go @@ -6,51 +6,27 @@ Copyright 2022 Upbound Inc. package v1alpha1 -// Hub marks this type as a conversion hub. -func (tr *CertificateV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *CertificateV3) Hub() {} // Hub marks this type as a conversion hub. func (tr *IpgroupV3) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *L7PolicyV2) Hub() {} - -// Hub marks this type as a conversion hub. -func (tr *L7RuleV2) Hub() {} - -// Hub marks this type as a conversion hub. -func (tr *ListenerV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *ListenerV3) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *LoadbalancerV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *LoadbalancerV3) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *MemberV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *MemberV3) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *MonitorV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *MonitorV3) Hub() {} // Hub marks this type as a conversion hub. func (tr *PolicyV3) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *PoolV2) Hub() {} - // Hub marks this type as a conversion hub. func (tr *PoolV3) Hub() {} @@ -59,6 +35,3 @@ func (tr *RuleV3) Hub() {} // Hub marks this type as a conversion hub. func (tr *SecurityPolicyV3) Hub() {} - -// Hub marks this type as a conversion hub. -func (tr *WhitelistV2) Hub() {} diff --git a/apis/lb/v1alpha1/zz_generated.deepcopy.go b/apis/lb/v1alpha1/zz_generated.deepcopy.go index 1eb7186..492ad1f 100644 --- a/apis/lb/v1alpha1/zz_generated.deepcopy.go +++ b/apis/lb/v1alpha1/zz_generated.deepcopy.go @@ -9,273 +9,10 @@ Copyright 2022 Upbound Inc. package v1alpha1 import ( + "github.com/crossplane/crossplane-runtime/apis/common/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2) DeepCopyInto(out *CertificateV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2. -func (in *CertificateV2) DeepCopy() *CertificateV2 { - if in == nil { - return nil - } - out := new(CertificateV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CertificateV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2InitParameters) DeepCopyInto(out *CertificateV2InitParameters) { - *out = *in - if in.Certificate != nil { - in, out := &in.Certificate, &out.Certificate - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Domain != nil { - in, out := &in.Domain, &out.Domain - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.PrivateKey != nil { - in, out := &in.PrivateKey, &out.PrivateKey - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2InitParameters. -func (in *CertificateV2InitParameters) DeepCopy() *CertificateV2InitParameters { - if in == nil { - return nil - } - out := new(CertificateV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2List) DeepCopyInto(out *CertificateV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]CertificateV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2List. -func (in *CertificateV2List) DeepCopy() *CertificateV2List { - if in == nil { - return nil - } - out := new(CertificateV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CertificateV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2Observation) DeepCopyInto(out *CertificateV2Observation) { - *out = *in - if in.Certificate != nil { - in, out := &in.Certificate, &out.Certificate - *out = new(string) - **out = **in - } - if in.CreateTime != nil { - in, out := &in.CreateTime, &out.CreateTime - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Domain != nil { - in, out := &in.Domain, &out.Domain - *out = new(string) - **out = **in - } - if in.ExpireTime != nil { - in, out := &in.ExpireTime, &out.ExpireTime - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.PrivateKey != nil { - in, out := &in.PrivateKey, &out.PrivateKey - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.UpdateTime != nil { - in, out := &in.UpdateTime, &out.UpdateTime - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2Observation. -func (in *CertificateV2Observation) DeepCopy() *CertificateV2Observation { - if in == nil { - return nil - } - out := new(CertificateV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2Parameters) DeepCopyInto(out *CertificateV2Parameters) { - *out = *in - if in.Certificate != nil { - in, out := &in.Certificate, &out.Certificate - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Domain != nil { - in, out := &in.Domain, &out.Domain - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.PrivateKey != nil { - in, out := &in.PrivateKey, &out.PrivateKey - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2Parameters. -func (in *CertificateV2Parameters) DeepCopy() *CertificateV2Parameters { - if in == nil { - return nil - } - out := new(CertificateV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2Spec) DeepCopyInto(out *CertificateV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2Spec. -func (in *CertificateV2Spec) DeepCopy() *CertificateV2Spec { - if in == nil { - return nil - } - out := new(CertificateV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertificateV2Status) DeepCopyInto(out *CertificateV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV2Status. -func (in *CertificateV2Status) DeepCopy() *CertificateV2Status { - if in == nil { - return nil - } - out := new(CertificateV2Status) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CertificateV3) DeepCopyInto(out *CertificateV3) { *out = *in @@ -718,6 +455,16 @@ func (in *IPGroupInitParameters) DeepCopyInto(out *IPGroupInitParameters) { *out = new(string) **out = **in } + if in.IDRef != nil { + in, out := &in.IDRef, &out.IDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IDSelector != nil { + in, out := &in.IDSelector, &out.IDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -778,6 +525,16 @@ func (in *IPGroupParameters) DeepCopyInto(out *IPGroupParameters) { *out = new(string) **out = **in } + if in.IDRef != nil { + in, out := &in.IDRef, &out.IDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IDSelector != nil { + in, out := &in.IDSelector, &out.IDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -808,6 +565,16 @@ func (in *IPListInitParameters) DeepCopyInto(out *IPListInitParameters) { *out = new(string) **out = **in } + if in.IPRef != nil { + in, out := &in.IPRef, &out.IPRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IPSelector != nil { + in, out := &in.IPSelector, &out.IPSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPListInitParameters. @@ -858,6 +625,16 @@ func (in *IPListParameters) DeepCopyInto(out *IPListParameters) { *out = new(string) **out = **in } + if in.IPRef != nil { + in, out := &in.IPRef, &out.IPRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IPSelector != nil { + in, out := &in.IPSelector, &out.IPSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPListParameters. @@ -1027,6 +804,16 @@ func (in *IpgroupV3InitParameters) DeepCopyInto(out *IpgroupV3InitParameters) { *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3InitParameters. @@ -1159,6 +946,16 @@ func (in *IpgroupV3Parameters) DeepCopyInto(out *IpgroupV3Parameters) { *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3Parameters. @@ -1207,7 +1004,7 @@ func (in *IpgroupV3Status) DeepCopy() *IpgroupV3Status { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2) DeepCopyInto(out *L7PolicyV2) { +func (in *ListenerV3) DeepCopyInto(out *ListenerV3) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -1215,18 +1012,18 @@ func (in *L7PolicyV2) DeepCopyInto(out *L7PolicyV2) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2. -func (in *L7PolicyV2) DeepCopy() *L7PolicyV2 { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3. +func (in *ListenerV3) DeepCopy() *ListenerV3 { if in == nil { return nil } - out := new(L7PolicyV2) + out := new(ListenerV3) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *L7PolicyV2) DeepCopyObject() runtime.Object { +func (in *ListenerV3) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -1234,96 +1031,217 @@ func (in *L7PolicyV2) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2InitParameters) DeepCopyInto(out *L7PolicyV2InitParameters) { +func (in *ListenerV3InitParameters) DeepCopyInto(out *ListenerV3InitParameters) { *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action - *out = new(string) - **out = **in - } if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in + if in.AdvancedForwarding != nil { + in, out := &in.AdvancedForwarding, &out.AdvancedForwarding + *out = new(bool) + **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.ClientCATLSContainerRef != nil { + in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.ClientTimeout != nil { + in, out := &in.ClientTimeout, &out.ClientTimeout + *out = new(float64) + **out = **in + } + if in.DefaultPoolID != nil { + in, out := &in.DefaultPoolID, &out.DefaultPoolID *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position + if in.DefaultPoolIDRef != nil { + in, out := &in.DefaultPoolIDRef, &out.DefaultPoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.DefaultPoolIDSelector != nil { + in, out := &in.DefaultPoolIDSelector, &out.DefaultPoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.DefaultTLSContainerRef != nil { + in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef + *out = new(string) + **out = **in + } + if in.DefaultTLSContainerRefRef != nil { + in, out := &in.DefaultTLSContainerRefRef, &out.DefaultTLSContainerRefRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.DefaultTLSContainerRefSelector != nil { + in, out := &in.DefaultTLSContainerRefSelector, &out.DefaultTLSContainerRefSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Http2Enable != nil { + in, out := &in.Http2Enable, &out.Http2Enable + *out = new(bool) + **out = **in + } + if in.IPGroup != nil { + in, out := &in.IPGroup, &out.IPGroup + *out = make([]IPGroupInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.InsertHeaders != nil { + in, out := &in.InsertHeaders, &out.InsertHeaders + *out = make([]InsertHeadersInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.KeepAliveTimeout != nil { + in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout *out = new(float64) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID *out = new(string) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.LoadbalancerIDRef != nil { + in, out := &in.LoadbalancerIDRef, &out.LoadbalancerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.LoadbalancerIDSelector != nil { + in, out := &in.LoadbalancerIDSelector, &out.LoadbalancerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.MemberRetryEnable != nil { + in, out := &in.MemberRetryEnable, &out.MemberRetryEnable + *out = new(bool) + **out = **in + } + if in.MemberTimeout != nil { + in, out := &in.MemberTimeout, &out.MemberTimeout + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort + *out = new(float64) + **out = **in + } + if in.SecurityPolicyID != nil { + in, out := &in.SecurityPolicyID, &out.SecurityPolicyID + *out = new(string) + **out = **in + } + if in.SecurityPolicyIDRef != nil { + in, out := &in.SecurityPolicyIDRef, &out.SecurityPolicyIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SecurityPolicyIDSelector != nil { + in, out := &in.SecurityPolicyIDSelector, &out.SecurityPolicyIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SniContainerRefs != nil { + in, out := &in.SniContainerRefs, &out.SniContainerRefs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SniMatchAlgo != nil { + in, out := &in.SniMatchAlgo, &out.SniMatchAlgo *out = new(string) **out = **in } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.TLSCiphersPolicy != nil { + in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2InitParameters. -func (in *L7PolicyV2InitParameters) DeepCopy() *L7PolicyV2InitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3InitParameters. +func (in *ListenerV3InitParameters) DeepCopy() *ListenerV3InitParameters { if in == nil { return nil } - out := new(L7PolicyV2InitParameters) + out := new(ListenerV3InitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2List) DeepCopyInto(out *L7PolicyV2List) { +func (in *ListenerV3List) DeepCopyInto(out *ListenerV3List) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]L7PolicyV2, len(*in)) + *out = make([]ListenerV3, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2List. -func (in *L7PolicyV2List) DeepCopy() *L7PolicyV2List { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3List. +func (in *ListenerV3List) DeepCopy() *ListenerV3List { if in == nil { return nil } - out := new(L7PolicyV2List) + out := new(ListenerV3List) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *L7PolicyV2List) DeepCopyObject() runtime.Object { +func (in *ListenerV3List) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -1331,2776 +1249,280 @@ func (in *L7PolicyV2List) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2Observation) DeepCopyInto(out *L7PolicyV2Observation) { +func (in *ListenerV3Observation) DeepCopyInto(out *ListenerV3Observation) { *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action - *out = new(string) - **out = **in - } if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) + if in.AdvancedForwarding != nil { + in, out := &in.AdvancedForwarding, &out.AdvancedForwarding + *out = new(bool) **out = **in } - if in.ID != nil { - in, out := &in.ID, &out.ID + if in.ClientCATLSContainerRef != nil { + in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef *out = new(string) **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID - *out = new(string) + if in.ClientTimeout != nil { + in, out := &in.ClientTimeout, &out.ClientTimeout + *out = new(float64) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position - *out = new(float64) + if in.DefaultPoolID != nil { + in, out := &in.DefaultPoolID, &out.DefaultPoolID + *out = new(string) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID + if in.DefaultTLSContainerRef != nil { + in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef *out = new(string) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.Description != nil { + in, out := &in.Description, &out.Description *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) + if in.Http2Enable != nil { + in, out := &in.Http2Enable, &out.Http2Enable + *out = new(bool) **out = **in } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.ID != nil { + in, out := &in.ID, &out.ID *out = new(string) **out = **in } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2Observation. -func (in *L7PolicyV2Observation) DeepCopy() *L7PolicyV2Observation { - if in == nil { - return nil + if in.IPGroup != nil { + in, out := &in.IPGroup, &out.IPGroup + *out = make([]IPGroupObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - out := new(L7PolicyV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2Parameters) DeepCopyInto(out *L7PolicyV2Parameters) { - *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action + if in.InsertHeaders != nil { + in, out := &in.InsertHeaders, &out.InsertHeaders + *out = make([]InsertHeadersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.KeepAliveTimeout != nil { + in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout + *out = new(float64) + **out = **in + } + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID *out = new(string) **out = **in } - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp + if in.MemberRetryEnable != nil { + in, out := &in.MemberRetryEnable, &out.MemberRetryEnable *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) + if in.MemberTimeout != nil { + in, out := &in.MemberTimeout, &out.MemberTimeout + *out = new(float64) **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort *out = new(float64) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID + if in.SecurityPolicyID != nil { + in, out := &in.SecurityPolicyID, &out.SecurityPolicyID *out = new(string) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.SniContainerRefs != nil { + in, out := &in.SniContainerRefs, &out.SniContainerRefs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SniMatchAlgo != nil { + in, out := &in.SniMatchAlgo, &out.SniMatchAlgo *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2Parameters. -func (in *L7PolicyV2Parameters) DeepCopy() *L7PolicyV2Parameters { - if in == nil { - return nil - } - out := new(L7PolicyV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2Spec) DeepCopyInto(out *L7PolicyV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2Spec. -func (in *L7PolicyV2Spec) DeepCopy() *L7PolicyV2Spec { - if in == nil { - return nil - } - out := new(L7PolicyV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7PolicyV2Status) DeepCopyInto(out *L7PolicyV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7PolicyV2Status. -func (in *L7PolicyV2Status) DeepCopy() *L7PolicyV2Status { - if in == nil { - return nil - } - out := new(L7PolicyV2Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2) DeepCopyInto(out *L7RuleV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2. -func (in *L7RuleV2) DeepCopy() *L7RuleV2 { - if in == nil { - return nil - } - out := new(L7RuleV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *L7RuleV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2InitParameters) DeepCopyInto(out *L7RuleV2InitParameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.CompareType != nil { - in, out := &in.CompareType, &out.CompareType - *out = new(string) - **out = **in - } - if in.Key != nil { - in, out := &in.Key, &out.Key - *out = new(string) - **out = **in - } - if in.L7PolicyID != nil { - in, out := &in.L7PolicyID, &out.L7PolicyID - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.Value != nil { - in, out := &in.Value, &out.Value - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2InitParameters. -func (in *L7RuleV2InitParameters) DeepCopy() *L7RuleV2InitParameters { - if in == nil { - return nil - } - out := new(L7RuleV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2List) DeepCopyInto(out *L7RuleV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]L7RuleV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2List. -func (in *L7RuleV2List) DeepCopy() *L7RuleV2List { - if in == nil { - return nil - } - out := new(L7RuleV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *L7RuleV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2Observation) DeepCopyInto(out *L7RuleV2Observation) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.CompareType != nil { - in, out := &in.CompareType, &out.CompareType - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Key != nil { - in, out := &in.Key, &out.Key - *out = new(string) - **out = **in - } - if in.L7PolicyID != nil { - in, out := &in.L7PolicyID, &out.L7PolicyID - *out = new(string) - **out = **in - } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.Value != nil { - in, out := &in.Value, &out.Value - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2Observation. -func (in *L7RuleV2Observation) DeepCopy() *L7RuleV2Observation { - if in == nil { - return nil - } - out := new(L7RuleV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2Parameters) DeepCopyInto(out *L7RuleV2Parameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.CompareType != nil { - in, out := &in.CompareType, &out.CompareType - *out = new(string) - **out = **in - } - if in.Key != nil { - in, out := &in.Key, &out.Key - *out = new(string) - **out = **in - } - if in.L7PolicyID != nil { - in, out := &in.L7PolicyID, &out.L7PolicyID - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.Value != nil { - in, out := &in.Value, &out.Value - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2Parameters. -func (in *L7RuleV2Parameters) DeepCopy() *L7RuleV2Parameters { - if in == nil { - return nil - } - out := new(L7RuleV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2Spec) DeepCopyInto(out *L7RuleV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2Spec. -func (in *L7RuleV2Spec) DeepCopy() *L7RuleV2Spec { - if in == nil { - return nil - } - out := new(L7RuleV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *L7RuleV2Status) DeepCopyInto(out *L7RuleV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7RuleV2Status. -func (in *L7RuleV2Status) DeepCopy() *L7RuleV2Status { - if in == nil { - return nil - } - out := new(L7RuleV2Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2) DeepCopyInto(out *ListenerV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2. -func (in *ListenerV2) DeepCopy() *ListenerV2 { - if in == nil { - return nil - } - out := new(ListenerV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ListenerV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2InitParameters) DeepCopyInto(out *ListenerV2InitParameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]IPGroupInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.TransparentClientIPEnable != nil { - in, out := &in.TransparentClientIPEnable, &out.TransparentClientIPEnable - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2InitParameters. -func (in *ListenerV2InitParameters) DeepCopy() *ListenerV2InitParameters { - if in == nil { - return nil - } - out := new(ListenerV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2List) DeepCopyInto(out *ListenerV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ListenerV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2List. -func (in *ListenerV2List) DeepCopy() *ListenerV2List { - if in == nil { - return nil - } - out := new(ListenerV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ListenerV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2Observation) DeepCopyInto(out *ListenerV2Observation) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]IPGroupObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.TransparentClientIPEnable != nil { - in, out := &in.TransparentClientIPEnable, &out.TransparentClientIPEnable - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2Observation. -func (in *ListenerV2Observation) DeepCopy() *ListenerV2Observation { - if in == nil { - return nil - } - out := new(ListenerV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2Parameters) DeepCopyInto(out *ListenerV2Parameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]IPGroupParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.TransparentClientIPEnable != nil { - in, out := &in.TransparentClientIPEnable, &out.TransparentClientIPEnable - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2Parameters. -func (in *ListenerV2Parameters) DeepCopy() *ListenerV2Parameters { - if in == nil { - return nil - } - out := new(ListenerV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2Spec) DeepCopyInto(out *ListenerV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2Spec. -func (in *ListenerV2Spec) DeepCopy() *ListenerV2Spec { - if in == nil { - return nil - } - out := new(ListenerV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV2Status) DeepCopyInto(out *ListenerV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV2Status. -func (in *ListenerV2Status) DeepCopy() *ListenerV2Status { - if in == nil { - return nil - } - out := new(ListenerV2Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3) DeepCopyInto(out *ListenerV3) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3. -func (in *ListenerV3) DeepCopy() *ListenerV3 { - if in == nil { - return nil - } - out := new(ListenerV3) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ListenerV3) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3IPGroupInitParameters) DeepCopyInto(out *ListenerV3IPGroupInitParameters) { - *out = *in - if in.Enable != nil { - in, out := &in.Enable, &out.Enable - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3IPGroupInitParameters. -func (in *ListenerV3IPGroupInitParameters) DeepCopy() *ListenerV3IPGroupInitParameters { - if in == nil { - return nil - } - out := new(ListenerV3IPGroupInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3IPGroupObservation) DeepCopyInto(out *ListenerV3IPGroupObservation) { - *out = *in - if in.Enable != nil { - in, out := &in.Enable, &out.Enable - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3IPGroupObservation. -func (in *ListenerV3IPGroupObservation) DeepCopy() *ListenerV3IPGroupObservation { - if in == nil { - return nil - } - out := new(ListenerV3IPGroupObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3IPGroupParameters) DeepCopyInto(out *ListenerV3IPGroupParameters) { - *out = *in - if in.Enable != nil { - in, out := &in.Enable, &out.Enable - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3IPGroupParameters. -func (in *ListenerV3IPGroupParameters) DeepCopy() *ListenerV3IPGroupParameters { - if in == nil { - return nil - } - out := new(ListenerV3IPGroupParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3InitParameters) DeepCopyInto(out *ListenerV3InitParameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AdvancedForwarding != nil { - in, out := &in.AdvancedForwarding, &out.AdvancedForwarding - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.ClientTimeout != nil { - in, out := &in.ClientTimeout, &out.ClientTimeout - *out = new(float64) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]ListenerV3IPGroupInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.InsertHeaders != nil { - in, out := &in.InsertHeaders, &out.InsertHeaders - *out = make([]InsertHeadersInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.KeepAliveTimeout != nil { - in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout - *out = new(float64) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.MemberRetryEnable != nil { - in, out := &in.MemberRetryEnable, &out.MemberRetryEnable - *out = new(bool) - **out = **in - } - if in.MemberTimeout != nil { - in, out := &in.MemberTimeout, &out.MemberTimeout - *out = new(float64) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.SecurityPolicyID != nil { - in, out := &in.SecurityPolicyID, &out.SecurityPolicyID - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.SniMatchAlgo != nil { - in, out := &in.SniMatchAlgo, &out.SniMatchAlgo - *out = new(string) - **out = **in - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3InitParameters. -func (in *ListenerV3InitParameters) DeepCopy() *ListenerV3InitParameters { - if in == nil { - return nil - } - out := new(ListenerV3InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3List) DeepCopyInto(out *ListenerV3List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ListenerV3, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3List. -func (in *ListenerV3List) DeepCopy() *ListenerV3List { - if in == nil { - return nil - } - out := new(ListenerV3List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ListenerV3List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3Observation) DeepCopyInto(out *ListenerV3Observation) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AdvancedForwarding != nil { - in, out := &in.AdvancedForwarding, &out.AdvancedForwarding - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.ClientTimeout != nil { - in, out := &in.ClientTimeout, &out.ClientTimeout - *out = new(float64) - **out = **in - } - if in.CreatedAt != nil { - in, out := &in.CreatedAt, &out.CreatedAt - *out = new(string) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]ListenerV3IPGroupObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.InsertHeaders != nil { - in, out := &in.InsertHeaders, &out.InsertHeaders - *out = make([]InsertHeadersObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.KeepAliveTimeout != nil { - in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout - *out = new(float64) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.MemberRetryEnable != nil { - in, out := &in.MemberRetryEnable, &out.MemberRetryEnable - *out = new(bool) - **out = **in - } - if in.MemberTimeout != nil { - in, out := &in.MemberTimeout, &out.MemberTimeout - *out = new(float64) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.SecurityPolicyID != nil { - in, out := &in.SecurityPolicyID, &out.SecurityPolicyID - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.SniMatchAlgo != nil { - in, out := &in.SniMatchAlgo, &out.SniMatchAlgo - *out = new(string) - **out = **in - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.UpdatedAt != nil { - in, out := &in.UpdatedAt, &out.UpdatedAt - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Observation. -func (in *ListenerV3Observation) DeepCopy() *ListenerV3Observation { - if in == nil { - return nil - } - out := new(ListenerV3Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3Parameters) DeepCopyInto(out *ListenerV3Parameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AdvancedForwarding != nil { - in, out := &in.AdvancedForwarding, &out.AdvancedForwarding - *out = new(bool) - **out = **in - } - if in.ClientCATLSContainerRef != nil { - in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef - *out = new(string) - **out = **in - } - if in.ClientTimeout != nil { - in, out := &in.ClientTimeout, &out.ClientTimeout - *out = new(float64) - **out = **in - } - if in.DefaultPoolID != nil { - in, out := &in.DefaultPoolID, &out.DefaultPoolID - *out = new(string) - **out = **in - } - if in.DefaultTLSContainerRef != nil { - in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef - *out = new(string) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.Http2Enable != nil { - in, out := &in.Http2Enable, &out.Http2Enable - *out = new(bool) - **out = **in - } - if in.IPGroup != nil { - in, out := &in.IPGroup, &out.IPGroup - *out = make([]ListenerV3IPGroupParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.InsertHeaders != nil { - in, out := &in.InsertHeaders, &out.InsertHeaders - *out = make([]InsertHeadersParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.KeepAliveTimeout != nil { - in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout - *out = new(float64) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.MemberRetryEnable != nil { - in, out := &in.MemberRetryEnable, &out.MemberRetryEnable - *out = new(bool) - **out = **in - } - if in.MemberTimeout != nil { - in, out := &in.MemberTimeout, &out.MemberTimeout - *out = new(float64) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.SecurityPolicyID != nil { - in, out := &in.SecurityPolicyID, &out.SecurityPolicyID - *out = new(string) - **out = **in - } - if in.SniContainerRefs != nil { - in, out := &in.SniContainerRefs, &out.SniContainerRefs - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.SniMatchAlgo != nil { - in, out := &in.SniMatchAlgo, &out.SniMatchAlgo - *out = new(string) - **out = **in - } - if in.TLSCiphersPolicy != nil { - in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Parameters. -func (in *ListenerV3Parameters) DeepCopy() *ListenerV3Parameters { - if in == nil { - return nil - } - out := new(ListenerV3Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3Spec) DeepCopyInto(out *ListenerV3Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Spec. -func (in *ListenerV3Spec) DeepCopy() *ListenerV3Spec { - if in == nil { - return nil - } - out := new(ListenerV3Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListenerV3Status) DeepCopyInto(out *ListenerV3Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Status. -func (in *ListenerV3Status) DeepCopy() *ListenerV3Status { - if in == nil { - return nil - } - out := new(ListenerV3Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2) DeepCopyInto(out *LoadbalancerV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2. -func (in *LoadbalancerV2) DeepCopy() *LoadbalancerV2 { - if in == nil { - return nil - } - out := new(LoadbalancerV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LoadbalancerV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2InitParameters) DeepCopyInto(out *LoadbalancerV2InitParameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.LoadbalancerProvider != nil { - in, out := &in.LoadbalancerProvider, &out.LoadbalancerProvider - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } - if in.VipSubnetID != nil { - in, out := &in.VipSubnetID, &out.VipSubnetID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2InitParameters. -func (in *LoadbalancerV2InitParameters) DeepCopy() *LoadbalancerV2InitParameters { - if in == nil { - return nil - } - out := new(LoadbalancerV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2List) DeepCopyInto(out *LoadbalancerV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]LoadbalancerV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2List. -func (in *LoadbalancerV2List) DeepCopy() *LoadbalancerV2List { - if in == nil { - return nil - } - out := new(LoadbalancerV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LoadbalancerV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2Observation) DeepCopyInto(out *LoadbalancerV2Observation) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.LoadbalancerProvider != nil { - in, out := &in.LoadbalancerProvider, &out.LoadbalancerProvider - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } - if in.VipPortID != nil { - in, out := &in.VipPortID, &out.VipPortID - *out = new(string) - **out = **in - } - if in.VipSubnetID != nil { - in, out := &in.VipSubnetID, &out.VipSubnetID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2Observation. -func (in *LoadbalancerV2Observation) DeepCopy() *LoadbalancerV2Observation { - if in == nil { - return nil - } - out := new(LoadbalancerV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2Parameters) DeepCopyInto(out *LoadbalancerV2Parameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.LoadbalancerProvider != nil { - in, out := &in.LoadbalancerProvider, &out.LoadbalancerProvider - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } - if in.VipSubnetID != nil { - in, out := &in.VipSubnetID, &out.VipSubnetID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2Parameters. -func (in *LoadbalancerV2Parameters) DeepCopy() *LoadbalancerV2Parameters { - if in == nil { - return nil - } - out := new(LoadbalancerV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2Spec) DeepCopyInto(out *LoadbalancerV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2Spec. -func (in *LoadbalancerV2Spec) DeepCopy() *LoadbalancerV2Spec { - if in == nil { - return nil - } - out := new(LoadbalancerV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV2Status) DeepCopyInto(out *LoadbalancerV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV2Status. -func (in *LoadbalancerV2Status) DeepCopy() *LoadbalancerV2Status { - if in == nil { - return nil - } - out := new(LoadbalancerV2Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3) DeepCopyInto(out *LoadbalancerV3) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3. -func (in *LoadbalancerV3) DeepCopy() *LoadbalancerV3 { - if in == nil { - return nil - } - out := new(LoadbalancerV3) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LoadbalancerV3) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3InitParameters) DeepCopyInto(out *LoadbalancerV3InitParameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AvailabilityZones != nil { - in, out := &in.AvailabilityZones, &out.AvailabilityZones - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.DeletionProtection != nil { - in, out := &in.DeletionProtection, &out.DeletionProtection - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.IPTargetEnable != nil { - in, out := &in.IPTargetEnable, &out.IPTargetEnable - *out = new(bool) - **out = **in - } - if in.L4Flavor != nil { - in, out := &in.L4Flavor, &out.L4Flavor - *out = new(string) - **out = **in - } - if in.L7Flavor != nil { - in, out := &in.L7Flavor, &out.L7Flavor - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NetworkIds != nil { - in, out := &in.NetworkIds, &out.NetworkIds - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.PublicIP != nil { - in, out := &in.PublicIP, &out.PublicIP - *out = make([]PublicIPInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RouterID != nil { - in, out := &in.RouterID, &out.RouterID - *out = new(string) - **out = **in - } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3InitParameters. -func (in *LoadbalancerV3InitParameters) DeepCopy() *LoadbalancerV3InitParameters { - if in == nil { - return nil - } - out := new(LoadbalancerV3InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3List) DeepCopyInto(out *LoadbalancerV3List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]LoadbalancerV3, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3List. -func (in *LoadbalancerV3List) DeepCopy() *LoadbalancerV3List { - if in == nil { - return nil - } - out := new(LoadbalancerV3List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LoadbalancerV3List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3Observation) DeepCopyInto(out *LoadbalancerV3Observation) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AvailabilityZones != nil { - in, out := &in.AvailabilityZones, &out.AvailabilityZones - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.CreatedAt != nil { - in, out := &in.CreatedAt, &out.CreatedAt - *out = new(string) - **out = **in - } - if in.DeletionProtection != nil { - in, out := &in.DeletionProtection, &out.DeletionProtection - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.IPTargetEnable != nil { - in, out := &in.IPTargetEnable, &out.IPTargetEnable - *out = new(bool) - **out = **in - } - if in.L4Flavor != nil { - in, out := &in.L4Flavor, &out.L4Flavor - *out = new(string) - **out = **in - } - if in.L7Flavor != nil { - in, out := &in.L7Flavor, &out.L7Flavor - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NetworkIds != nil { - in, out := &in.NetworkIds, &out.NetworkIds - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.PublicIP != nil { - in, out := &in.PublicIP, &out.PublicIP - *out = make([]PublicIPObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RouterID != nil { - in, out := &in.RouterID, &out.RouterID - *out = new(string) - **out = **in - } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.UpdatedAt != nil { - in, out := &in.UpdatedAt, &out.UpdatedAt - *out = new(string) - **out = **in - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } - if in.VipPortID != nil { - in, out := &in.VipPortID, &out.VipPortID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Observation. -func (in *LoadbalancerV3Observation) DeepCopy() *LoadbalancerV3Observation { - if in == nil { - return nil - } - out := new(LoadbalancerV3Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3Parameters) DeepCopyInto(out *LoadbalancerV3Parameters) { - *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.AvailabilityZones != nil { - in, out := &in.AvailabilityZones, &out.AvailabilityZones - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.DeletionProtection != nil { - in, out := &in.DeletionProtection, &out.DeletionProtection - *out = new(bool) - **out = **in - } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.IPTargetEnable != nil { - in, out := &in.IPTargetEnable, &out.IPTargetEnable - *out = new(bool) - **out = **in - } - if in.L4Flavor != nil { - in, out := &in.L4Flavor, &out.L4Flavor - *out = new(string) - **out = **in - } - if in.L7Flavor != nil { - in, out := &in.L7Flavor, &out.L7Flavor - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NetworkIds != nil { - in, out := &in.NetworkIds, &out.NetworkIds - *out = make([]*string, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } - } - } - if in.PublicIP != nil { - in, out := &in.PublicIP, &out.PublicIP - *out = make([]PublicIPParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RouterID != nil { - in, out := &in.RouterID, &out.RouterID - *out = new(string) - **out = **in - } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in - } - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]*string, len(*in)) - for key, val := range *in { - var outVal *string - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = new(string) - **out = **in - } - (*out)[key] = outVal - } - } - if in.VipAddress != nil { - in, out := &in.VipAddress, &out.VipAddress - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Parameters. -func (in *LoadbalancerV3Parameters) DeepCopy() *LoadbalancerV3Parameters { - if in == nil { - return nil - } - out := new(LoadbalancerV3Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3Spec) DeepCopyInto(out *LoadbalancerV3Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Spec. -func (in *LoadbalancerV3Spec) DeepCopy() *LoadbalancerV3Spec { - if in == nil { - return nil - } - out := new(LoadbalancerV3Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LoadbalancerV3Status) DeepCopyInto(out *LoadbalancerV3Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Status. -func (in *LoadbalancerV3Status) DeepCopy() *LoadbalancerV3Status { - if in == nil { - return nil - } - out := new(LoadbalancerV3Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2) DeepCopyInto(out *MemberV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2. -func (in *MemberV2) DeepCopy() *MemberV2 { - if in == nil { - return nil - } - out := new(MemberV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MemberV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2InitParameters) DeepCopyInto(out *MemberV2InitParameters) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2InitParameters. -func (in *MemberV2InitParameters) DeepCopy() *MemberV2InitParameters { - if in == nil { - return nil - } - out := new(MemberV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2List) DeepCopyInto(out *MemberV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MemberV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2List. -func (in *MemberV2List) DeepCopy() *MemberV2List { - if in == nil { - return nil - } - out := new(MemberV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MemberV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2Observation) DeepCopyInto(out *MemberV2Observation) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID - *out = new(string) - **out = **in - } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region + if in.TLSCiphersPolicy != nil { + in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy *out = new(string) **out = **in } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt *out = new(string) **out = **in } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) - **out = **in - } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2Observation. -func (in *MemberV2Observation) DeepCopy() *MemberV2Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Observation. +func (in *ListenerV3Observation) DeepCopy() *ListenerV3Observation { if in == nil { return nil } - out := new(MemberV2Observation) + out := new(ListenerV3Observation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2Parameters) DeepCopyInto(out *MemberV2Parameters) { +func (in *ListenerV3Parameters) DeepCopyInto(out *ListenerV3Parameters) { *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) + if in.AdvancedForwarding != nil { + in, out := &in.AdvancedForwarding, &out.AdvancedForwarding + *out = new(bool) **out = **in } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID + if in.ClientCATLSContainerRef != nil { + in, out := &in.ClientCATLSContainerRef, &out.ClientCATLSContainerRef *out = new(string) **out = **in } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort + if in.ClientTimeout != nil { + in, out := &in.ClientTimeout, &out.ClientTimeout *out = new(float64) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.DefaultPoolID != nil { + in, out := &in.DefaultPoolID, &out.DefaultPoolID *out = new(string) **out = **in } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2Parameters. -func (in *MemberV2Parameters) DeepCopy() *MemberV2Parameters { - if in == nil { - return nil - } - out := new(MemberV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2Spec) DeepCopyInto(out *MemberV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2Spec. -func (in *MemberV2Spec) DeepCopy() *MemberV2Spec { - if in == nil { - return nil - } - out := new(MemberV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV2Status) DeepCopyInto(out *MemberV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV2Status. -func (in *MemberV2Status) DeepCopy() *MemberV2Status { - if in == nil { - return nil - } - out := new(MemberV2Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3) DeepCopyInto(out *MemberV3) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3. -func (in *MemberV3) DeepCopy() *MemberV3 { - if in == nil { - return nil - } - out := new(MemberV3) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MemberV3) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3InitParameters) DeepCopyInto(out *MemberV3InitParameters) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in + if in.DefaultPoolIDRef != nil { + in, out := &in.DefaultPoolIDRef, &out.DefaultPoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in + if in.DefaultPoolIDSelector != nil { + in, out := &in.DefaultPoolIDSelector, &out.DefaultPoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID + if in.DefaultTLSContainerRef != nil { + in, out := &in.DefaultTLSContainerRef, &out.DefaultTLSContainerRef *out = new(string) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in + if in.DefaultTLSContainerRefRef != nil { + in, out := &in.DefaultTLSContainerRefRef, &out.DefaultTLSContainerRefRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort - *out = new(float64) - **out = **in + if in.DefaultTLSContainerRefSelector != nil { + in, out := &in.DefaultTLSContainerRefSelector, &out.DefaultTLSContainerRefSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID + if in.Description != nil { + in, out := &in.Description, &out.Description *out = new(string) **out = **in } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) + if in.Http2Enable != nil { + in, out := &in.Http2Enable, &out.Http2Enable + *out = new(bool) **out = **in } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3InitParameters. -func (in *MemberV3InitParameters) DeepCopy() *MemberV3InitParameters { - if in == nil { - return nil - } - out := new(MemberV3InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3List) DeepCopyInto(out *MemberV3List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MemberV3, len(*in)) + if in.IPGroup != nil { + in, out := &in.IPGroup, &out.IPGroup + *out = make([]IPGroupParameters, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3List. -func (in *MemberV3List) DeepCopy() *MemberV3List { - if in == nil { - return nil - } - out := new(MemberV3List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MemberV3List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3Observation) DeepCopyInto(out *MemberV3Observation) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.IPVersion != nil { - in, out := &in.IPVersion, &out.IPVersion - *out = new(string) - **out = **in - } - if in.MemberID != nil { - in, out := &in.MemberID, &out.MemberID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.OperatingStatus != nil { - in, out := &in.OperatingStatus, &out.OperatingStatus - *out = new(string) - **out = **in - } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID - *out = new(string) - **out = **in - } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in + if in.InsertHeaders != nil { + in, out := &in.InsertHeaders, &out.InsertHeaders + *out = make([]InsertHeadersParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.ProtocolPort != nil { - in, out := &in.ProtocolPort, &out.ProtocolPort + if in.KeepAliveTimeout != nil { + in, out := &in.KeepAliveTimeout, &out.KeepAliveTimeout *out = new(float64) **out = **in } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID *out = new(string) **out = **in } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) - **out = **in + if in.LoadbalancerIDRef != nil { + in, out := &in.LoadbalancerIDRef, &out.LoadbalancerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Observation. -func (in *MemberV3Observation) DeepCopy() *MemberV3Observation { - if in == nil { - return nil + if in.LoadbalancerIDSelector != nil { + in, out := &in.LoadbalancerIDSelector, &out.LoadbalancerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) } - out := new(MemberV3Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3Parameters) DeepCopyInto(out *MemberV3Parameters) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) + if in.MemberRetryEnable != nil { + in, out := &in.MemberRetryEnable, &out.MemberRetryEnable + *out = new(bool) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) + if in.MemberTimeout != nil { + in, out := &in.MemberTimeout, &out.MemberTimeout + *out = new(float64) **out = **in } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol *out = new(string) **out = **in } @@ -4109,65 +1531,107 @@ func (in *MemberV3Parameters) DeepCopyInto(out *MemberV3Parameters) { *out = new(float64) **out = **in } - if in.SubnetID != nil { - in, out := &in.SubnetID, &out.SubnetID + if in.SecurityPolicyID != nil { + in, out := &in.SecurityPolicyID, &out.SecurityPolicyID *out = new(string) **out = **in } - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(float64) + if in.SecurityPolicyIDRef != nil { + in, out := &in.SecurityPolicyIDRef, &out.SecurityPolicyIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SecurityPolicyIDSelector != nil { + in, out := &in.SecurityPolicyIDSelector, &out.SecurityPolicyIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SniContainerRefs != nil { + in, out := &in.SniContainerRefs, &out.SniContainerRefs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SniMatchAlgo != nil { + in, out := &in.SniMatchAlgo, &out.SniMatchAlgo + *out = new(string) + **out = **in + } + if in.TLSCiphersPolicy != nil { + in, out := &in.TLSCiphersPolicy, &out.TLSCiphersPolicy + *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Parameters. -func (in *MemberV3Parameters) DeepCopy() *MemberV3Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Parameters. +func (in *ListenerV3Parameters) DeepCopy() *ListenerV3Parameters { if in == nil { return nil } - out := new(MemberV3Parameters) + out := new(ListenerV3Parameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3Spec) DeepCopyInto(out *MemberV3Spec) { +func (in *ListenerV3Spec) DeepCopyInto(out *ListenerV3Spec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Spec. -func (in *MemberV3Spec) DeepCopy() *MemberV3Spec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Spec. +func (in *ListenerV3Spec) DeepCopy() *ListenerV3Spec { if in == nil { return nil } - out := new(MemberV3Spec) + out := new(ListenerV3Spec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MemberV3Status) DeepCopyInto(out *MemberV3Status) { +func (in *ListenerV3Status) DeepCopyInto(out *ListenerV3Status) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Status. -func (in *MemberV3Status) DeepCopy() *MemberV3Status { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerV3Status. +func (in *ListenerV3Status) DeepCopy() *ListenerV3Status { if in == nil { return nil } - out := new(MemberV3Status) + out := new(ListenerV3Status) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2) DeepCopyInto(out *MonitorV2) { +func (in *LoadbalancerV3) DeepCopyInto(out *LoadbalancerV3) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -4175,18 +1639,18 @@ func (in *MonitorV2) DeepCopyInto(out *MonitorV2) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2. -func (in *MonitorV2) DeepCopy() *MonitorV2 { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3. +func (in *LoadbalancerV3) DeepCopy() *LoadbalancerV3 { if in == nil { return nil } - out := new(MonitorV2) + out := new(LoadbalancerV3) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MonitorV2) DeepCopyObject() runtime.Object { +func (in *LoadbalancerV3) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4194,41 +1658,47 @@ func (in *MonitorV2) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2InitParameters) DeepCopyInto(out *MonitorV2InitParameters) { +func (in *LoadbalancerV3InitParameters) DeepCopyInto(out *LoadbalancerV3InitParameters) { *out = *in if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) + if in.DeletionProtection != nil { + in, out := &in.DeletionProtection, &out.DeletionProtection + *out = new(bool) **out = **in } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes + if in.Description != nil { + in, out := &in.Description, &out.Description *out = new(string) **out = **in } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod - *out = new(string) + if in.IPTargetEnable != nil { + in, out := &in.IPTargetEnable, &out.IPTargetEnable + *out = new(bool) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) + if in.L4Flavor != nil { + in, out := &in.L4Flavor, &out.L4Flavor + *out = new(string) **out = **in } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) + if in.L7Flavor != nil { + in, out := &in.L7Flavor, &out.L7Flavor + *out = new(string) **out = **in } if in.Name != nil { @@ -4236,74 +1706,125 @@ func (in *MonitorV2InitParameters) DeepCopyInto(out *MonitorV2InitParameters) { *out = new(string) **out = **in } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID - *out = new(string) - **out = **in + if in.NetworkIds != nil { + in, out := &in.NetworkIds, &out.NetworkIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in + if in.NetworkIdsRefs != nil { + in, out := &in.NetworkIdsRefs, &out.NetworkIdsRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NetworkIdsSelector != nil { + in, out := &in.NetworkIdsSelector, &out.NetworkIdsSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.PublicIP != nil { + in, out := &in.PublicIP, &out.PublicIP + *out = make([]PublicIPInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout - *out = new(float64) - **out = **in + if in.RouterIDRef != nil { + in, out := &in.RouterIDRef, &out.RouterIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.RouterIDSelector != nil { + in, out := &in.RouterIDSelector, &out.RouterIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.VipAddress != nil { + in, out := &in.VipAddress, &out.VipAddress *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2InitParameters. -func (in *MonitorV2InitParameters) DeepCopy() *MonitorV2InitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3InitParameters. +func (in *LoadbalancerV3InitParameters) DeepCopy() *LoadbalancerV3InitParameters { if in == nil { return nil } - out := new(MonitorV2InitParameters) + out := new(LoadbalancerV3InitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2List) DeepCopyInto(out *MonitorV2List) { +func (in *LoadbalancerV3List) DeepCopyInto(out *LoadbalancerV3List) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]MonitorV2, len(*in)) + *out = make([]LoadbalancerV3, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2List. -func (in *MonitorV2List) DeepCopy() *MonitorV2List { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3List. +func (in *LoadbalancerV3List) DeepCopy() *LoadbalancerV3List { if in == nil { return nil } - out := new(MonitorV2List) + out := new(LoadbalancerV3List) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MonitorV2List) DeepCopyObject() runtime.Object { +func (in *LoadbalancerV3List) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4311,30 +1832,36 @@ func (in *MonitorV2List) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2Observation) DeepCopyInto(out *MonitorV2Observation) { +func (in *LoadbalancerV3Observation) DeepCopyInto(out *LoadbalancerV3Observation) { *out = *in if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in - } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) - **out = **in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt *out = new(string) **out = **in } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod + if in.DeletionProtection != nil { + in, out := &in.DeletionProtection, &out.DeletionProtection + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description *out = new(string) **out = **in } @@ -4343,99 +1870,139 @@ func (in *MonitorV2Observation) DeepCopyInto(out *MonitorV2Observation) { *out = new(string) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) + if in.IPTargetEnable != nil { + in, out := &in.IPTargetEnable, &out.IPTargetEnable + *out = new(bool) **out = **in } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) + if in.L4Flavor != nil { + in, out := &in.L4Flavor, &out.L4Flavor + *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.L7Flavor != nil { + in, out := &in.L7Flavor, &out.L7Flavor *out = new(string) **out = **in } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region + if in.NetworkIds != nil { + in, out := &in.NetworkIds, &out.NetworkIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.PublicIP != nil { + in, out := &in.PublicIP, &out.PublicIP + *out = make([]PublicIPObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID *out = new(string) **out = **in } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout - *out = new(float64) + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) **out = **in } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.VipAddress != nil { + in, out := &in.VipAddress, &out.VipAddress *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath + if in.VipPortID != nil { + in, out := &in.VipPortID, &out.VipPortID *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2Observation. -func (in *MonitorV2Observation) DeepCopy() *MonitorV2Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Observation. +func (in *LoadbalancerV3Observation) DeepCopy() *LoadbalancerV3Observation { if in == nil { return nil } - out := new(MonitorV2Observation) + out := new(LoadbalancerV3Observation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2Parameters) DeepCopyInto(out *MonitorV2Parameters) { +func (in *LoadbalancerV3Parameters) DeepCopyInto(out *LoadbalancerV3Parameters) { *out = *in if in.AdminStateUp != nil { in, out := &in.AdminStateUp, &out.AdminStateUp *out = new(bool) **out = **in } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) + if in.DeletionProtection != nil { + in, out := &in.DeletionProtection, &out.DeletionProtection + *out = new(bool) **out = **in } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes + if in.Description != nil { + in, out := &in.Description, &out.Description *out = new(string) **out = **in } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod - *out = new(string) + if in.IPTargetEnable != nil { + in, out := &in.IPTargetEnable, &out.IPTargetEnable + *out = new(bool) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) + if in.L4Flavor != nil { + in, out := &in.L4Flavor, &out.L4Flavor + *out = new(string) **out = **in } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) + if in.L7Flavor != nil { + in, out := &in.L7Flavor, &out.L7Flavor + *out = new(string) **out = **in } if in.Name != nil { @@ -4443,85 +2010,136 @@ func (in *MonitorV2Parameters) DeepCopyInto(out *MonitorV2Parameters) { *out = new(string) **out = **in } - if in.PoolID != nil { - in, out := &in.PoolID, &out.PoolID - *out = new(string) - **out = **in + if in.NetworkIds != nil { + in, out := &in.NetworkIds, &out.NetworkIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in + if in.NetworkIdsRefs != nil { + in, out := &in.NetworkIdsRefs, &out.NetworkIdsRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NetworkIdsSelector != nil { + in, out := &in.NetworkIdsSelector, &out.NetworkIdsSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.PublicIP != nil { + in, out := &in.PublicIP, &out.PublicIP + *out = make([]PublicIPParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout - *out = new(float64) - **out = **in + if in.RouterIDRef != nil { + in, out := &in.RouterIDRef, &out.RouterIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.RouterIDSelector != nil { + in, out := &in.RouterIDSelector, &out.RouterIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.VipAddress != nil { + in, out := &in.VipAddress, &out.VipAddress *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2Parameters. -func (in *MonitorV2Parameters) DeepCopy() *MonitorV2Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Parameters. +func (in *LoadbalancerV3Parameters) DeepCopy() *LoadbalancerV3Parameters { if in == nil { return nil } - out := new(MonitorV2Parameters) + out := new(LoadbalancerV3Parameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2Spec) DeepCopyInto(out *MonitorV2Spec) { +func (in *LoadbalancerV3Spec) DeepCopyInto(out *LoadbalancerV3Spec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2Spec. -func (in *MonitorV2Spec) DeepCopy() *MonitorV2Spec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Spec. +func (in *LoadbalancerV3Spec) DeepCopy() *LoadbalancerV3Spec { if in == nil { return nil } - out := new(MonitorV2Spec) + out := new(LoadbalancerV3Spec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV2Status) DeepCopyInto(out *MonitorV2Status) { +func (in *LoadbalancerV3Status) DeepCopyInto(out *LoadbalancerV3Status) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV2Status. -func (in *MonitorV2Status) DeepCopy() *MonitorV2Status { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadbalancerV3Status. +func (in *LoadbalancerV3Status) DeepCopy() *LoadbalancerV3Status { if in == nil { return nil } - out := new(MonitorV2Status) + out := new(LoadbalancerV3Status) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3) DeepCopyInto(out *MonitorV3) { +func (in *MemberV3) DeepCopyInto(out *MemberV3) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -4529,18 +2147,18 @@ func (in *MonitorV3) DeepCopyInto(out *MonitorV3) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3. -func (in *MonitorV3) DeepCopy() *MonitorV3 { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3. +func (in *MemberV3) DeepCopy() *MemberV3 { if in == nil { return nil } - out := new(MonitorV3) + out := new(MemberV3) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MonitorV3) DeepCopyObject() runtime.Object { +func (in *MemberV3) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4548,48 +2166,13 @@ func (in *MonitorV3) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3InitParameters) DeepCopyInto(out *MonitorV3InitParameters) { +func (in *MemberV3InitParameters) DeepCopyInto(out *MemberV3InitParameters) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in - } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) - **out = **in - } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes - *out = new(string) - **out = **in - } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod + if in.Address != nil { + in, out := &in.Address, &out.Address *out = new(string) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) - **out = **in - } - if in.MaxRetriesDown != nil { - in, out := &in.MaxRetriesDown, &out.MaxRetriesDown - *out = new(float64) - **out = **in - } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) - **out = **in - } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -4600,64 +2183,94 @@ func (in *MonitorV3InitParameters) DeepCopyInto(out *MonitorV3InitParameters) { *out = new(string) **out = **in } + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort *out = new(float64) **out = **in } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath - *out = new(string) + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Weight != nil { + in, out := &in.Weight, &out.Weight + *out = new(float64) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3InitParameters. -func (in *MonitorV3InitParameters) DeepCopy() *MonitorV3InitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3InitParameters. +func (in *MemberV3InitParameters) DeepCopy() *MemberV3InitParameters { if in == nil { return nil } - out := new(MonitorV3InitParameters) + out := new(MemberV3InitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3List) DeepCopyInto(out *MonitorV3List) { +func (in *MemberV3List) DeepCopyInto(out *MemberV3List) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]MonitorV3, len(*in)) + *out = make([]MemberV3, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3List. -func (in *MonitorV3List) DeepCopy() *MonitorV3List { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3List. +func (in *MemberV3List) DeepCopy() *MemberV3List { if in == nil { return nil } - out := new(MonitorV3List) + out := new(MemberV3List) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MonitorV3List) DeepCopyObject() runtime.Object { +func (in *MemberV3List) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4665,30 +2278,10 @@ func (in *MonitorV3List) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { +func (in *MemberV3Observation) DeepCopyInto(out *MemberV3Observation) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in - } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) - **out = **in - } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes - *out = new(string) - **out = **in - } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod + if in.Address != nil { + in, out := &in.Address, &out.Address *out = new(string) **out = **in } @@ -4697,19 +2290,14 @@ func (in *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { *out = new(string) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) - **out = **in - } - if in.MaxRetriesDown != nil { - in, out := &in.MaxRetriesDown, &out.MaxRetriesDown - *out = new(float64) + if in.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *out = new(string) **out = **in } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) **out = **in } if in.Name != nil { @@ -4717,6 +2305,11 @@ func (in *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { *out = new(string) **out = **in } + if in.OperatingStatus != nil { + in, out := &in.OperatingStatus, &out.OperatingStatus + *out = new(string) + **out = **in + } if in.PoolID != nil { in, out := &in.PoolID, &out.PoolID *out = new(string) @@ -4727,76 +2320,41 @@ func (in *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort *out = new(float64) **out = **in } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath - *out = new(string) + if in.Weight != nil { + in, out := &in.Weight, &out.Weight + *out = new(float64) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Observation. -func (in *MonitorV3Observation) DeepCopy() *MonitorV3Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Observation. +func (in *MemberV3Observation) DeepCopy() *MemberV3Observation { if in == nil { return nil } - out := new(MonitorV3Observation) + out := new(MemberV3Observation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3Parameters) DeepCopyInto(out *MonitorV3Parameters) { +func (in *MemberV3Parameters) DeepCopyInto(out *MemberV3Parameters) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) - **out = **in - } - if in.Delay != nil { - in, out := &in.Delay, &out.Delay - *out = new(float64) - **out = **in - } - if in.DomainName != nil { - in, out := &in.DomainName, &out.DomainName - *out = new(string) - **out = **in - } - if in.ExpectedCodes != nil { - in, out := &in.ExpectedCodes, &out.ExpectedCodes - *out = new(string) - **out = **in - } - if in.HTTPMethod != nil { - in, out := &in.HTTPMethod, &out.HTTPMethod + if in.Address != nil { + in, out := &in.Address, &out.Address *out = new(string) **out = **in } - if in.MaxRetries != nil { - in, out := &in.MaxRetries, &out.MaxRetries - *out = new(float64) - **out = **in - } - if in.MaxRetriesDown != nil { - in, out := &in.MaxRetriesDown, &out.MaxRetriesDown - *out = new(float64) - **out = **in - } - if in.MonitorPort != nil { - in, out := &in.MonitorPort, &out.MonitorPort - *out = new(float64) - **out = **in - } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -4807,150 +2365,105 @@ func (in *MonitorV3Parameters) DeepCopyInto(out *MonitorV3Parameters) { *out = new(string) **out = **in } + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.Timeout != nil { - in, out := &in.Timeout, &out.Timeout + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort *out = new(float64) **out = **in } - if in.Type != nil { - in, out := &in.Type, &out.Type + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID *out = new(string) **out = **in } - if in.URLPath != nil { - in, out := &in.URLPath, &out.URLPath - *out = new(string) + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Weight != nil { + in, out := &in.Weight, &out.Weight + *out = new(float64) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Parameters. -func (in *MonitorV3Parameters) DeepCopy() *MonitorV3Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Parameters. +func (in *MemberV3Parameters) DeepCopy() *MemberV3Parameters { if in == nil { return nil } - out := new(MonitorV3Parameters) + out := new(MemberV3Parameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3Spec) DeepCopyInto(out *MonitorV3Spec) { +func (in *MemberV3Spec) DeepCopyInto(out *MemberV3Spec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Spec. -func (in *MonitorV3Spec) DeepCopy() *MonitorV3Spec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Spec. +func (in *MemberV3Spec) DeepCopy() *MemberV3Spec { if in == nil { return nil } - out := new(MonitorV3Spec) + out := new(MemberV3Spec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitorV3Status) DeepCopyInto(out *MonitorV3Status) { +func (in *MemberV3Status) DeepCopyInto(out *MemberV3Status) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Status. -func (in *MonitorV3Status) DeepCopy() *MonitorV3Status { - if in == nil { - return nil - } - out := new(MonitorV3Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PersistenceInitParameters) DeepCopyInto(out *PersistenceInitParameters) { - *out = *in - if in.CookieName != nil { - in, out := &in.CookieName, &out.CookieName - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceInitParameters. -func (in *PersistenceInitParameters) DeepCopy() *PersistenceInitParameters { - if in == nil { - return nil - } - out := new(PersistenceInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PersistenceObservation) DeepCopyInto(out *PersistenceObservation) { - *out = *in - if in.CookieName != nil { - in, out := &in.CookieName, &out.CookieName - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceObservation. -func (in *PersistenceObservation) DeepCopy() *PersistenceObservation { - if in == nil { - return nil - } - out := new(PersistenceObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PersistenceParameters) DeepCopyInto(out *PersistenceParameters) { - *out = *in - if in.CookieName != nil { - in, out := &in.CookieName, &out.CookieName - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceParameters. -func (in *PersistenceParameters) DeepCopy() *PersistenceParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberV3Status. +func (in *MemberV3Status) DeepCopy() *MemberV3Status { if in == nil { return nil } - out := new(PersistenceParameters) + out := new(MemberV3Status) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3) DeepCopyInto(out *PolicyV3) { +func (in *MonitorV3) DeepCopyInto(out *MonitorV3) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -4958,18 +2471,18 @@ func (in *PolicyV3) DeepCopyInto(out *PolicyV3) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3. -func (in *PolicyV3) DeepCopy() *PolicyV3 { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3. +func (in *MonitorV3) DeepCopy() *MonitorV3 { if in == nil { return nil } - out := new(PolicyV3) + out := new(MonitorV3) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PolicyV3) DeepCopyObject() runtime.Object { +func (in *MonitorV3) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4977,124 +2490,136 @@ func (in *PolicyV3) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3InitParameters) DeepCopyInto(out *PolicyV3InitParameters) { +func (in *MonitorV3InitParameters) DeepCopyInto(out *MonitorV3InitParameters) { *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action - *out = new(string) + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) + if in.Delay != nil { + in, out := &in.Delay, &out.Delay + *out = new(float64) **out = **in } - if in.FixedResponseConfig != nil { - in, out := &in.FixedResponseConfig, &out.FixedResponseConfig - *out = make([]FixedResponseConfigInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.DomainName != nil { + in, out := &in.DomainName, &out.DomainName + *out = new(string) + **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.ExpectedCodes != nil { + in, out := &in.ExpectedCodes, &out.ExpectedCodes *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.HTTPMethod != nil { + in, out := &in.HTTPMethod, &out.HTTPMethod *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries *out = new(float64) **out = **in } - if in.Priority != nil { - in, out := &in.Priority, &out.Priority + if in.MaxRetriesDown != nil { + in, out := &in.MaxRetriesDown, &out.MaxRetriesDown *out = new(float64) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) + if in.MonitorPort != nil { + in, out := &in.MonitorPort, &out.MonitorPort + *out = new(float64) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID *out = new(string) **out = **in } - if in.RedirectPoolsConfig != nil { - in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig - *out = make([]RedirectPoolsConfigInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.RedirectURL != nil { - in, out := &in.RedirectURL, &out.RedirectURL + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.RedirectURLConfig != nil { - in, out := &in.RedirectURLConfig, &out.RedirectURLConfig - *out = make([]RedirectURLConfigInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) } - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]RulesInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.URLPath != nil { + in, out := &in.URLPath, &out.URLPath + *out = new(string) + **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3InitParameters. -func (in *PolicyV3InitParameters) DeepCopy() *PolicyV3InitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3InitParameters. +func (in *MonitorV3InitParameters) DeepCopy() *MonitorV3InitParameters { if in == nil { return nil } - out := new(PolicyV3InitParameters) + out := new(MonitorV3InitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3List) DeepCopyInto(out *PolicyV3List) { +func (in *MonitorV3List) DeepCopyInto(out *MonitorV3List) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]PolicyV3, len(*in)) + *out = make([]MonitorV3, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3List. -func (in *PolicyV3List) DeepCopy() *PolicyV3List { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3List. +func (in *MonitorV3List) DeepCopy() *MonitorV3List { if in == nil { return nil } - out := new(PolicyV3List) + out := new(MonitorV3List) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PolicyV3List) DeepCopyObject() runtime.Object { +func (in *MonitorV3List) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -5102,238 +2627,237 @@ func (in *PolicyV3List) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3Observation) DeepCopyInto(out *PolicyV3Observation) { +func (in *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action - *out = new(string) + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) + if in.Delay != nil { + in, out := &in.Delay, &out.Delay + *out = new(float64) **out = **in } - if in.FixedResponseConfig != nil { - in, out := &in.FixedResponseConfig, &out.FixedResponseConfig - *out = make([]FixedResponseConfigObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.DomainName != nil { + in, out := &in.DomainName, &out.DomainName + *out = new(string) + **out = **in } - if in.ID != nil { - in, out := &in.ID, &out.ID + if in.ExpectedCodes != nil { + in, out := &in.ExpectedCodes, &out.ExpectedCodes *out = new(string) **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.HTTPMethod != nil { + in, out := &in.HTTPMethod, &out.HTTPMethod *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.ID != nil { + in, out := &in.ID, &out.ID *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries *out = new(float64) **out = **in } - if in.Priority != nil { - in, out := &in.Priority, &out.Priority + if in.MaxRetriesDown != nil { + in, out := &in.MaxRetriesDown, &out.MaxRetriesDown *out = new(float64) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) + if in.MonitorPort != nil { + in, out := &in.MonitorPort, &out.MonitorPort + *out = new(float64) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID *out = new(string) **out = **in } - if in.RedirectPoolsConfig != nil { - in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig - *out = make([]RedirectPoolsConfigObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RedirectURL != nil { - in, out := &in.RedirectURL, &out.RedirectURL + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.RedirectURLConfig != nil { - in, out := &in.RedirectURLConfig, &out.RedirectURLConfig - *out = make([]RedirectURLConfigObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in } - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]RulesObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in } - if in.Status != nil { - in, out := &in.Status, &out.Status + if in.URLPath != nil { + in, out := &in.URLPath, &out.URLPath *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Observation. -func (in *PolicyV3Observation) DeepCopy() *PolicyV3Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Observation. +func (in *MonitorV3Observation) DeepCopy() *MonitorV3Observation { if in == nil { return nil } - out := new(PolicyV3Observation) + out := new(MonitorV3Observation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3Parameters) DeepCopyInto(out *PolicyV3Parameters) { +func (in *MonitorV3Parameters) DeepCopyInto(out *MonitorV3Parameters) { *out = *in - if in.Action != nil { - in, out := &in.Action, &out.Action - *out = new(string) + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description + if in.Delay != nil { + in, out := &in.Delay, &out.Delay + *out = new(float64) + **out = **in + } + if in.DomainName != nil { + in, out := &in.DomainName, &out.DomainName *out = new(string) **out = **in } - if in.FixedResponseConfig != nil { - in, out := &in.FixedResponseConfig, &out.FixedResponseConfig - *out = make([]FixedResponseConfigParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.ExpectedCodes != nil { + in, out := &in.ExpectedCodes, &out.ExpectedCodes + *out = new(string) + **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.HTTPMethod != nil { + in, out := &in.HTTPMethod, &out.HTTPMethod *out = new(string) **out = **in } + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries + *out = new(float64) + **out = **in + } + if in.MaxRetriesDown != nil { + in, out := &in.MaxRetriesDown, &out.MaxRetriesDown + *out = new(float64) + **out = **in + } + if in.MonitorPort != nil { + in, out := &in.MonitorPort, &out.MonitorPort + *out = new(float64) + **out = **in + } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.Position != nil { - in, out := &in.Position, &out.Position - *out = new(float64) + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *out = new(string) **out = **in } - if in.Priority != nil { - in, out := &in.Priority, &out.Priority - *out = new(float64) - **out = **in + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.RedirectListenerID != nil { - in, out := &in.RedirectListenerID, &out.RedirectListenerID - *out = new(string) + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) **out = **in } - if in.RedirectPoolID != nil { - in, out := &in.RedirectPoolID, &out.RedirectPoolID + if in.Type != nil { + in, out := &in.Type, &out.Type *out = new(string) **out = **in } - if in.RedirectPoolsConfig != nil { - in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig - *out = make([]RedirectPoolsConfigParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RedirectURL != nil { - in, out := &in.RedirectURL, &out.RedirectURL + if in.URLPath != nil { + in, out := &in.URLPath, &out.URLPath *out = new(string) **out = **in } - if in.RedirectURLConfig != nil { - in, out := &in.RedirectURLConfig, &out.RedirectURLConfig - *out = make([]RedirectURLConfigParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]RulesParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Parameters. -func (in *PolicyV3Parameters) DeepCopy() *PolicyV3Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Parameters. +func (in *MonitorV3Parameters) DeepCopy() *MonitorV3Parameters { if in == nil { return nil } - out := new(PolicyV3Parameters) + out := new(MonitorV3Parameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3Spec) DeepCopyInto(out *PolicyV3Spec) { +func (in *MonitorV3Spec) DeepCopyInto(out *MonitorV3Spec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Spec. -func (in *PolicyV3Spec) DeepCopy() *PolicyV3Spec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Spec. +func (in *MonitorV3Spec) DeepCopy() *MonitorV3Spec { if in == nil { return nil } - out := new(PolicyV3Spec) + out := new(MonitorV3Spec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyV3Status) DeepCopyInto(out *PolicyV3Status) { +func (in *MonitorV3Status) DeepCopyInto(out *MonitorV3Status) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Status. -func (in *PolicyV3Status) DeepCopy() *PolicyV3Status { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorV3Status. +func (in *MonitorV3Status) DeepCopy() *MonitorV3Status { if in == nil { return nil } - out := new(PolicyV3Status) + out := new(MonitorV3Status) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2) DeepCopyInto(out *PoolV2) { +func (in *PolicyV3) DeepCopyInto(out *PolicyV3) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -5341,18 +2865,18 @@ func (in *PoolV2) DeepCopyInto(out *PoolV2) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2. -func (in *PoolV2) DeepCopy() *PoolV2 { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3. +func (in *PolicyV3) DeepCopy() *PolicyV3 { if in == nil { return nil } - out := new(PoolV2) + out := new(PolicyV3) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PoolV2) DeepCopyObject() runtime.Object { +func (in *PolicyV3) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -5360,11 +2884,11 @@ func (in *PoolV2) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2InitParameters) DeepCopyInto(out *PoolV2InitParameters) { +func (in *PolicyV3InitParameters) DeepCopyInto(out *PolicyV3InitParameters) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) **out = **in } if in.Description != nil { @@ -5372,86 +2896,152 @@ func (in *PoolV2InitParameters) DeepCopyInto(out *PoolV2InitParameters) { *out = new(string) **out = **in } - if in.LBMethod != nil { - in, out := &in.LBMethod, &out.LBMethod - *out = new(string) - **out = **in + if in.FixedResponseConfig != nil { + in, out := &in.FixedResponseConfig, &out.FixedResponseConfig + *out = make([]FixedResponseConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } if in.ListenerID != nil { in, out := &in.ListenerID, &out.ListenerID *out = new(string) **out = **in } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in + if in.ListenerIDRef != nil { + in, out := &in.ListenerIDRef, &out.ListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ListenerIDSelector != nil { + in, out := &in.ListenerIDSelector, &out.ListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.Persistence != nil { - in, out := &in.Persistence, &out.Persistence - *out = make([]PersistenceInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } + if in.Position != nil { + in, out := &in.Position, &out.Position + *out = new(float64) + **out = **in } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectListenerID != nil { + in, out := &in.RedirectListenerID, &out.RedirectListenerID + *out = new(string) + **out = **in + } + if in.RedirectListenerIDRef != nil { + in, out := &in.RedirectListenerIDRef, &out.RedirectListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RedirectListenerIDSelector != nil { + in, out := &in.RedirectListenerIDSelector, &out.RedirectListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolID != nil { + in, out := &in.RedirectPoolID, &out.RedirectPoolID *out = new(string) **out = **in } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.RedirectPoolIDRef != nil { + in, out := &in.RedirectPoolIDRef, &out.RedirectPoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolIDSelector != nil { + in, out := &in.RedirectPoolIDSelector, &out.RedirectPoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolsConfig != nil { + in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig + *out = make([]RedirectPoolsConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RedirectURL != nil { + in, out := &in.RedirectURL, &out.RedirectURL *out = new(string) **out = **in } + if in.RedirectURLConfig != nil { + in, out := &in.RedirectURLConfig, &out.RedirectURLConfig + *out = make([]RedirectURLConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]RulesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2InitParameters. -func (in *PoolV2InitParameters) DeepCopy() *PoolV2InitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3InitParameters. +func (in *PolicyV3InitParameters) DeepCopy() *PolicyV3InitParameters { if in == nil { return nil } - out := new(PoolV2InitParameters) + out := new(PolicyV3InitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2List) DeepCopyInto(out *PoolV2List) { +func (in *PolicyV3List) DeepCopyInto(out *PolicyV3List) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]PoolV2, len(*in)) + *out = make([]PolicyV3, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2List. -func (in *PoolV2List) DeepCopy() *PoolV2List { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3List. +func (in *PolicyV3List) DeepCopy() *PolicyV3List { if in == nil { return nil } - out := new(PoolV2List) + out := new(PolicyV3List) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PoolV2List) DeepCopyObject() runtime.Object { +func (in *PolicyV3List) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -5459,11 +3049,11 @@ func (in *PoolV2List) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2Observation) DeepCopyInto(out *PoolV2Observation) { +func (in *PolicyV3Observation) DeepCopyInto(out *PolicyV3Observation) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) **out = **in } if in.Description != nil { @@ -5471,163 +3061,260 @@ func (in *PoolV2Observation) DeepCopyInto(out *PoolV2Observation) { *out = new(string) **out = **in } + if in.FixedResponseConfig != nil { + in, out := &in.FixedResponseConfig, &out.FixedResponseConfig + *out = make([]FixedResponseConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ID != nil { in, out := &in.ID, &out.ID *out = new(string) **out = **in } - if in.LBMethod != nil { - in, out := &in.LBMethod, &out.LBMethod + if in.ListenerID != nil { + in, out := &in.ListenerID, &out.ListenerID *out = new(string) **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID + if in.Position != nil { + in, out := &in.Position, &out.Position + *out = new(float64) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.RedirectListenerID != nil { + in, out := &in.RedirectListenerID, &out.RedirectListenerID + *out = new(string) + **out = **in + } + if in.RedirectPoolID != nil { + in, out := &in.RedirectPoolID, &out.RedirectPoolID *out = new(string) **out = **in } - if in.Persistence != nil { - in, out := &in.Persistence, &out.Persistence - *out = make([]PersistenceObservation, len(*in)) + if in.RedirectPoolsConfig != nil { + in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig + *out = make([]RedirectPoolsConfigObservation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol + if in.RedirectURL != nil { + in, out := &in.RedirectURL, &out.RedirectURL *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in + if in.RedirectURLConfig != nil { + in, out := &in.RedirectURLConfig, &out.RedirectURLConfig + *out = make([]RedirectURLConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]RulesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID + if in.Status != nil { + in, out := &in.Status, &out.Status *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2Observation. -func (in *PoolV2Observation) DeepCopy() *PoolV2Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Observation. +func (in *PolicyV3Observation) DeepCopy() *PolicyV3Observation { if in == nil { return nil } - out := new(PoolV2Observation) + out := new(PolicyV3Observation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2Parameters) DeepCopyInto(out *PoolV2Parameters) { +func (in *PolicyV3Parameters) DeepCopyInto(out *PolicyV3Parameters) { *out = *in - if in.AdminStateUp != nil { - in, out := &in.AdminStateUp, &out.AdminStateUp - *out = new(bool) + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FixedResponseConfig != nil { + in, out := &in.FixedResponseConfig, &out.FixedResponseConfig + *out = make([]FixedResponseConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ListenerID != nil { + in, out := &in.ListenerID, &out.ListenerID + *out = new(string) **out = **in } - if in.Description != nil { - in, out := &in.Description, &out.Description + if in.ListenerIDRef != nil { + in, out := &in.ListenerIDRef, &out.ListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ListenerIDSelector != nil { + in, out := &in.ListenerIDSelector, &out.ListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name *out = new(string) **out = **in } - if in.LBMethod != nil { - in, out := &in.LBMethod, &out.LBMethod - *out = new(string) + if in.Position != nil { + in, out := &in.Position, &out.Position + *out = new(float64) **out = **in } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectListenerID != nil { + in, out := &in.RedirectListenerID, &out.RedirectListenerID *out = new(string) **out = **in } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.RedirectListenerIDRef != nil { + in, out := &in.RedirectListenerIDRef, &out.RedirectListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RedirectListenerIDSelector != nil { + in, out := &in.RedirectListenerIDSelector, &out.RedirectListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolID != nil { + in, out := &in.RedirectPoolID, &out.RedirectPoolID *out = new(string) **out = **in } - if in.Persistence != nil { - in, out := &in.Persistence, &out.Persistence - *out = make([]PersistenceParameters, len(*in)) + if in.RedirectPoolIDRef != nil { + in, out := &in.RedirectPoolIDRef, &out.RedirectPoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolIDSelector != nil { + in, out := &in.RedirectPoolIDSelector, &out.RedirectPoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.RedirectPoolsConfig != nil { + in, out := &in.RedirectPoolsConfig, &out.RedirectPoolsConfig + *out = make([]RedirectPoolsConfigParameters, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol + if in.RedirectURL != nil { + in, out := &in.RedirectURL, &out.RedirectURL *out = new(string) **out = **in } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in + if in.RedirectURLConfig != nil { + in, out := &in.RedirectURLConfig, &out.RedirectURLConfig + *out = make([]RedirectURLConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]RulesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2Parameters. -func (in *PoolV2Parameters) DeepCopy() *PoolV2Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Parameters. +func (in *PolicyV3Parameters) DeepCopy() *PolicyV3Parameters { if in == nil { return nil } - out := new(PoolV2Parameters) + out := new(PolicyV3Parameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2Spec) DeepCopyInto(out *PoolV2Spec) { +func (in *PolicyV3Spec) DeepCopyInto(out *PolicyV3Spec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2Spec. -func (in *PoolV2Spec) DeepCopy() *PoolV2Spec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Spec. +func (in *PolicyV3Spec) DeepCopy() *PolicyV3Spec { if in == nil { return nil } - out := new(PoolV2Spec) + out := new(PolicyV3Spec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PoolV2Status) DeepCopyInto(out *PoolV2Status) { +func (in *PolicyV3Status) DeepCopyInto(out *PolicyV3Status) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV2Status. -func (in *PoolV2Status) DeepCopy() *PoolV2Status { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV3Status. +func (in *PolicyV3Status) DeepCopy() *PolicyV3Status { if in == nil { return nil } - out := new(PoolV2Status) + out := new(PolicyV3Status) in.DeepCopyInto(out) return out } @@ -5677,11 +3364,31 @@ func (in *PoolV3InitParameters) DeepCopyInto(out *PoolV3InitParameters) { *out = new(string) **out = **in } + if in.ListenerIDRef != nil { + in, out := &in.ListenerIDRef, &out.ListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ListenerIDSelector != nil { + in, out := &in.ListenerIDSelector, &out.ListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.LoadbalancerID != nil { in, out := &in.LoadbalancerID, &out.LoadbalancerID *out = new(string) **out = **in } + if in.LoadbalancerIDRef != nil { + in, out := &in.LoadbalancerIDRef, &out.LoadbalancerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.LoadbalancerIDSelector != nil { + in, out := &in.LoadbalancerIDSelector, &out.LoadbalancerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.MemberDeletionProtection != nil { in, out := &in.MemberDeletionProtection, &out.MemberDeletionProtection *out = new(bool) @@ -5697,6 +3404,16 @@ func (in *PoolV3InitParameters) DeepCopyInto(out *PoolV3InitParameters) { *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Protocol != nil { in, out := &in.Protocol, &out.Protocol *out = new(string) @@ -5719,6 +3436,16 @@ func (in *PoolV3InitParameters) DeepCopyInto(out *PoolV3InitParameters) { *out = new(string) **out = **in } + if in.VPCIDRef != nil { + in, out := &in.VPCIDRef, &out.VPCIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.VPCIDSelector != nil { + in, out := &in.VPCIDSelector, &out.VPCIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3InitParameters. @@ -5863,11 +3590,31 @@ func (in *PoolV3Parameters) DeepCopyInto(out *PoolV3Parameters) { *out = new(string) **out = **in } + if in.ListenerIDRef != nil { + in, out := &in.ListenerIDRef, &out.ListenerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ListenerIDSelector != nil { + in, out := &in.ListenerIDSelector, &out.ListenerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.LoadbalancerID != nil { in, out := &in.LoadbalancerID, &out.LoadbalancerID *out = new(string) **out = **in } + if in.LoadbalancerIDRef != nil { + in, out := &in.LoadbalancerIDRef, &out.LoadbalancerIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.LoadbalancerIDSelector != nil { + in, out := &in.LoadbalancerIDSelector, &out.LoadbalancerIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.MemberDeletionProtection != nil { in, out := &in.MemberDeletionProtection, &out.MemberDeletionProtection *out = new(bool) @@ -5883,6 +3630,16 @@ func (in *PoolV3Parameters) DeepCopyInto(out *PoolV3Parameters) { *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Protocol != nil { in, out := &in.Protocol, &out.Protocol *out = new(string) @@ -5905,6 +3662,16 @@ func (in *PoolV3Parameters) DeepCopyInto(out *PoolV3Parameters) { *out = new(string) **out = **in } + if in.VPCIDRef != nil { + in, out := &in.VPCIDRef, &out.VPCIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.VPCIDSelector != nil { + in, out := &in.VPCIDSelector, &out.VPCIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3Parameters. @@ -5980,6 +3747,16 @@ func (in *PublicIPInitParameters) DeepCopyInto(out *PublicIPInitParameters) { *out = new(string) **out = **in } + if in.IDRef != nil { + in, out := &in.IDRef, &out.IDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IDSelector != nil { + in, out := &in.IDSelector, &out.IDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.IPType != nil { in, out := &in.IPType, &out.IPType *out = new(string) @@ -6080,6 +3857,16 @@ func (in *PublicIPParameters) DeepCopyInto(out *PublicIPParameters) { *out = new(string) **out = **in } + if in.IDRef != nil { + in, out := &in.IDRef, &out.IDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.IDSelector != nil { + in, out := &in.IDSelector, &out.IDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.IPType != nil { in, out := &in.IPType, &out.IPType *out = new(string) @@ -6105,6 +3892,16 @@ func (in *RedirectPoolsConfigInitParameters) DeepCopyInto(out *RedirectPoolsConf *out = new(string) **out = **in } + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Weight != nil { in, out := &in.Weight, &out.Weight *out = new(float64) @@ -6155,6 +3952,16 @@ func (in *RedirectPoolsConfigParameters) DeepCopyInto(out *RedirectPoolsConfigPa *out = new(string) **out = **in } + if in.PoolIDRef != nil { + in, out := &in.PoolIDRef, &out.PoolIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PoolIDSelector != nil { + in, out := &in.PoolIDSelector, &out.PoolIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Weight != nil { in, out := &in.Weight, &out.Weight *out = new(float64) @@ -6354,11 +4161,31 @@ func (in *RuleV3InitParameters) DeepCopyInto(out *RuleV3InitParameters) { *out = new(string) **out = **in } + if in.PolicyIDRef != nil { + in, out := &in.PolicyIDRef, &out.PolicyIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PolicyIDSelector != nil { + in, out := &in.PolicyIDSelector, &out.PolicyIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -6490,11 +4317,31 @@ func (in *RuleV3Parameters) DeepCopyInto(out *RuleV3Parameters) { *out = new(string) **out = **in } + if in.PolicyIDRef != nil { + in, out := &in.PolicyIDRef, &out.PolicyIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PolicyIDSelector != nil { + in, out := &in.PolicyIDSelector, &out.PolicyIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) **out = **in } + if in.ProjectIDRef != nil { + in, out := &in.ProjectIDRef, &out.ProjectIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ProjectIDSelector != nil { + in, out := &in.ProjectIDSelector, &out.ProjectIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -6997,207 +4844,3 @@ func (in *SessionPersistenceParameters) DeepCopy() *SessionPersistenceParameters in.DeepCopyInto(out) return out } - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2) DeepCopyInto(out *WhitelistV2) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2. -func (in *WhitelistV2) DeepCopy() *WhitelistV2 { - if in == nil { - return nil - } - out := new(WhitelistV2) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *WhitelistV2) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2InitParameters) DeepCopyInto(out *WhitelistV2InitParameters) { - *out = *in - if in.EnableWhitelist != nil { - in, out := &in.EnableWhitelist, &out.EnableWhitelist - *out = new(bool) - **out = **in - } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Whitelist != nil { - in, out := &in.Whitelist, &out.Whitelist - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2InitParameters. -func (in *WhitelistV2InitParameters) DeepCopy() *WhitelistV2InitParameters { - if in == nil { - return nil - } - out := new(WhitelistV2InitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2List) DeepCopyInto(out *WhitelistV2List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]WhitelistV2, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2List. -func (in *WhitelistV2List) DeepCopy() *WhitelistV2List { - if in == nil { - return nil - } - out := new(WhitelistV2List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *WhitelistV2List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2Observation) DeepCopyInto(out *WhitelistV2Observation) { - *out = *in - if in.EnableWhitelist != nil { - in, out := &in.EnableWhitelist, &out.EnableWhitelist - *out = new(bool) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Whitelist != nil { - in, out := &in.Whitelist, &out.Whitelist - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2Observation. -func (in *WhitelistV2Observation) DeepCopy() *WhitelistV2Observation { - if in == nil { - return nil - } - out := new(WhitelistV2Observation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2Parameters) DeepCopyInto(out *WhitelistV2Parameters) { - *out = *in - if in.EnableWhitelist != nil { - in, out := &in.EnableWhitelist, &out.EnableWhitelist - *out = new(bool) - **out = **in - } - if in.ListenerID != nil { - in, out := &in.ListenerID, &out.ListenerID - *out = new(string) - **out = **in - } - if in.TenantID != nil { - in, out := &in.TenantID, &out.TenantID - *out = new(string) - **out = **in - } - if in.Whitelist != nil { - in, out := &in.Whitelist, &out.Whitelist - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2Parameters. -func (in *WhitelistV2Parameters) DeepCopy() *WhitelistV2Parameters { - if in == nil { - return nil - } - out := new(WhitelistV2Parameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2Spec) DeepCopyInto(out *WhitelistV2Spec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2Spec. -func (in *WhitelistV2Spec) DeepCopy() *WhitelistV2Spec { - if in == nil { - return nil - } - out := new(WhitelistV2Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WhitelistV2Status) DeepCopyInto(out *WhitelistV2Status) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistV2Status. -func (in *WhitelistV2Status) DeepCopy() *WhitelistV2Status { - if in == nil { - return nil - } - out := new(WhitelistV2Status) - in.DeepCopyInto(out) - return out -} diff --git a/apis/lb/v1alpha1/zz_generated.managed.go b/apis/lb/v1alpha1/zz_generated.managed.go index d8e2a96..83f27a7 100644 --- a/apis/lb/v1alpha1/zz_generated.managed.go +++ b/apis/lb/v1alpha1/zz_generated.managed.go @@ -7,66 +7,6 @@ package v1alpha1 import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -// GetCondition of this CertificateV2. -func (mg *CertificateV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this CertificateV2. -func (mg *CertificateV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this CertificateV2. -func (mg *CertificateV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this CertificateV2. -func (mg *CertificateV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this CertificateV2. -func (mg *CertificateV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this CertificateV2. -func (mg *CertificateV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this CertificateV2. -func (mg *CertificateV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this CertificateV2. -func (mg *CertificateV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this CertificateV2. -func (mg *CertificateV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this CertificateV2. -func (mg *CertificateV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this CertificateV2. -func (mg *CertificateV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this CertificateV2. -func (mg *CertificateV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this CertificateV3. func (mg *CertificateV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -187,186 +127,6 @@ func (mg *IpgroupV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this L7PolicyV2. -func (mg *L7PolicyV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this L7PolicyV2. -func (mg *L7PolicyV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this L7PolicyV2. -func (mg *L7PolicyV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this L7PolicyV2. -func (mg *L7PolicyV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this L7PolicyV2. -func (mg *L7PolicyV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this L7PolicyV2. -func (mg *L7PolicyV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this L7PolicyV2. -func (mg *L7PolicyV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this L7PolicyV2. -func (mg *L7PolicyV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this L7PolicyV2. -func (mg *L7PolicyV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this L7PolicyV2. -func (mg *L7PolicyV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this L7PolicyV2. -func (mg *L7PolicyV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this L7PolicyV2. -func (mg *L7PolicyV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - -// GetCondition of this L7RuleV2. -func (mg *L7RuleV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this L7RuleV2. -func (mg *L7RuleV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this L7RuleV2. -func (mg *L7RuleV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this L7RuleV2. -func (mg *L7RuleV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this L7RuleV2. -func (mg *L7RuleV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this L7RuleV2. -func (mg *L7RuleV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this L7RuleV2. -func (mg *L7RuleV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this L7RuleV2. -func (mg *L7RuleV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this L7RuleV2. -func (mg *L7RuleV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this L7RuleV2. -func (mg *L7RuleV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this L7RuleV2. -func (mg *L7RuleV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this L7RuleV2. -func (mg *L7RuleV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - -// GetCondition of this ListenerV2. -func (mg *ListenerV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this ListenerV2. -func (mg *ListenerV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this ListenerV2. -func (mg *ListenerV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this ListenerV2. -func (mg *ListenerV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this ListenerV2. -func (mg *ListenerV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this ListenerV2. -func (mg *ListenerV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this ListenerV2. -func (mg *ListenerV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this ListenerV2. -func (mg *ListenerV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this ListenerV2. -func (mg *ListenerV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this ListenerV2. -func (mg *ListenerV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this ListenerV2. -func (mg *ListenerV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this ListenerV2. -func (mg *ListenerV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this ListenerV3. func (mg *ListenerV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -427,66 +187,6 @@ func (mg *ListenerV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReferenc mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this LoadbalancerV2. -func (mg *LoadbalancerV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this LoadbalancerV2. -func (mg *LoadbalancerV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this LoadbalancerV3. func (mg *LoadbalancerV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -547,66 +247,6 @@ func (mg *LoadbalancerV3) SetWriteConnectionSecretToReference(r *xpv1.SecretRefe mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this MemberV2. -func (mg *MemberV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this MemberV2. -func (mg *MemberV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this MemberV2. -func (mg *MemberV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this MemberV2. -func (mg *MemberV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this MemberV2. -func (mg *MemberV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this MemberV2. -func (mg *MemberV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this MemberV2. -func (mg *MemberV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this MemberV2. -func (mg *MemberV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this MemberV2. -func (mg *MemberV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this MemberV2. -func (mg *MemberV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this MemberV2. -func (mg *MemberV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this MemberV2. -func (mg *MemberV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this MemberV3. func (mg *MemberV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -667,66 +307,6 @@ func (mg *MemberV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this MonitorV2. -func (mg *MonitorV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this MonitorV2. -func (mg *MonitorV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this MonitorV2. -func (mg *MonitorV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this MonitorV2. -func (mg *MonitorV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this MonitorV2. -func (mg *MonitorV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this MonitorV2. -func (mg *MonitorV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this MonitorV2. -func (mg *MonitorV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this MonitorV2. -func (mg *MonitorV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this MonitorV2. -func (mg *MonitorV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this MonitorV2. -func (mg *MonitorV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this MonitorV2. -func (mg *MonitorV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this MonitorV2. -func (mg *MonitorV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this MonitorV3. func (mg *MonitorV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -847,66 +427,6 @@ func (mg *PolicyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this PoolV2. -func (mg *PoolV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this PoolV2. -func (mg *PoolV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this PoolV2. -func (mg *PoolV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this PoolV2. -func (mg *PoolV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this PoolV2. -func (mg *PoolV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this PoolV2. -func (mg *PoolV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this PoolV2. -func (mg *PoolV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this PoolV2. -func (mg *PoolV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this PoolV2. -func (mg *PoolV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this PoolV2. -func (mg *PoolV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this PoolV2. -func (mg *PoolV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this PoolV2. -func (mg *PoolV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this PoolV3. func (mg *PoolV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -1086,63 +606,3 @@ func (mg *SecurityPolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnect func (mg *SecurityPolicyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } - -// GetCondition of this WhitelistV2. -func (mg *WhitelistV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this WhitelistV2. -func (mg *WhitelistV2) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this WhitelistV2. -func (mg *WhitelistV2) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this WhitelistV2. -func (mg *WhitelistV2) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this WhitelistV2. -func (mg *WhitelistV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this WhitelistV2. -func (mg *WhitelistV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this WhitelistV2. -func (mg *WhitelistV2) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this WhitelistV2. -func (mg *WhitelistV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this WhitelistV2. -func (mg *WhitelistV2) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this WhitelistV2. -func (mg *WhitelistV2) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this WhitelistV2. -func (mg *WhitelistV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this WhitelistV2. -func (mg *WhitelistV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} diff --git a/apis/lb/v1alpha1/zz_generated.managedlist.go b/apis/lb/v1alpha1/zz_generated.managedlist.go index 51b2c33..e65d8e3 100644 --- a/apis/lb/v1alpha1/zz_generated.managedlist.go +++ b/apis/lb/v1alpha1/zz_generated.managedlist.go @@ -7,15 +7,6 @@ package v1alpha1 import resource "github.com/crossplane/crossplane-runtime/pkg/resource" -// GetItems of this CertificateV2List. -func (l *CertificateV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this CertificateV3List. func (l *CertificateV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -34,33 +25,6 @@ func (l *IpgroupV3List) GetItems() []resource.Managed { return items } -// GetItems of this L7PolicyV2List. -func (l *L7PolicyV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - -// GetItems of this L7RuleV2List. -func (l *L7RuleV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - -// GetItems of this ListenerV2List. -func (l *ListenerV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this ListenerV3List. func (l *ListenerV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -70,15 +34,6 @@ func (l *ListenerV3List) GetItems() []resource.Managed { return items } -// GetItems of this LoadbalancerV2List. -func (l *LoadbalancerV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this LoadbalancerV3List. func (l *LoadbalancerV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -88,15 +43,6 @@ func (l *LoadbalancerV3List) GetItems() []resource.Managed { return items } -// GetItems of this MemberV2List. -func (l *MemberV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this MemberV3List. func (l *MemberV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -106,15 +52,6 @@ func (l *MemberV3List) GetItems() []resource.Managed { return items } -// GetItems of this MonitorV2List. -func (l *MonitorV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this MonitorV3List. func (l *MonitorV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -133,15 +70,6 @@ func (l *PolicyV3List) GetItems() []resource.Managed { return items } -// GetItems of this PoolV2List. -func (l *PoolV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this PoolV3List. func (l *PoolV3List) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -168,12 +96,3 @@ func (l *SecurityPolicyV3List) GetItems() []resource.Managed { } return items } - -// GetItems of this WhitelistV2List. -func (l *WhitelistV2List) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} diff --git a/apis/lb/v1alpha1/zz_generated.resolvers.go b/apis/lb/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..7e70b60 --- /dev/null +++ b/apis/lb/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,978 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + v1alpha11 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + common "github.com/opentelekomcloud/provider-opentelekomcloud/config/common" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this IpgroupV3. +func (mg *IpgroupV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + for i3 := 0; i3 < len(mg.Spec.ForProvider.IPList); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.IPList[i3].IP), + Extract: common.ExtractEipAddress(), + Reference: mg.Spec.ForProvider.IPList[i3].IPRef, + Selector: mg.Spec.ForProvider.IPList[i3].IPSelector, + To: reference.To{ + List: &v1alpha1.EIPV1List{}, + Managed: &v1alpha1.EIPV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.IPList[i3].IP") + } + mg.Spec.ForProvider.IPList[i3].IP = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.IPList[i3].IPRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.InitProvider.IPList); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.IPList[i3].IP), + Extract: common.ExtractEipAddress(), + Reference: mg.Spec.InitProvider.IPList[i3].IPRef, + Selector: mg.Spec.InitProvider.IPList[i3].IPSelector, + To: reference.To{ + List: &v1alpha1.EIPV1List{}, + Managed: &v1alpha1.EIPV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.IPList[i3].IP") + } + mg.Spec.InitProvider.IPList[i3].IP = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.IPList[i3].IPRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this ListenerV3. +func (mg *ListenerV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.DefaultPoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.DefaultPoolIDRef, + Selector: mg.Spec.ForProvider.DefaultPoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.DefaultPoolID") + } + mg.Spec.ForProvider.DefaultPoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.DefaultPoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.DefaultTLSContainerRef), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.DefaultTLSContainerRefRef, + Selector: mg.Spec.ForProvider.DefaultTLSContainerRefSelector, + To: reference.To{ + List: &CertificateV3List{}, + Managed: &CertificateV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.DefaultTLSContainerRef") + } + mg.Spec.ForProvider.DefaultTLSContainerRef = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.DefaultTLSContainerRefRef = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.ForProvider.IPGroup); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.IPGroup[i3].ID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.IPGroup[i3].IDRef, + Selector: mg.Spec.ForProvider.IPGroup[i3].IDSelector, + To: reference.To{ + List: &IpgroupV3List{}, + Managed: &IpgroupV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.IPGroup[i3].ID") + } + mg.Spec.ForProvider.IPGroup[i3].ID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.IPGroup[i3].IDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.LoadbalancerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.LoadbalancerIDRef, + Selector: mg.Spec.ForProvider.LoadbalancerIDSelector, + To: reference.To{ + List: &LoadbalancerV3List{}, + Managed: &LoadbalancerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.LoadbalancerID") + } + mg.Spec.ForProvider.LoadbalancerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.LoadbalancerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SecurityPolicyID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.SecurityPolicyIDRef, + Selector: mg.Spec.ForProvider.SecurityPolicyIDSelector, + To: reference.To{ + List: &SecurityPolicyV3List{}, + Managed: &SecurityPolicyV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SecurityPolicyID") + } + mg.Spec.ForProvider.SecurityPolicyID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.SecurityPolicyIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.DefaultPoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.DefaultPoolIDRef, + Selector: mg.Spec.InitProvider.DefaultPoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.DefaultPoolID") + } + mg.Spec.InitProvider.DefaultPoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.DefaultPoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.DefaultTLSContainerRef), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.DefaultTLSContainerRefRef, + Selector: mg.Spec.InitProvider.DefaultTLSContainerRefSelector, + To: reference.To{ + List: &CertificateV3List{}, + Managed: &CertificateV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.DefaultTLSContainerRef") + } + mg.Spec.InitProvider.DefaultTLSContainerRef = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.DefaultTLSContainerRefRef = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.InitProvider.IPGroup); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.IPGroup[i3].ID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.IPGroup[i3].IDRef, + Selector: mg.Spec.InitProvider.IPGroup[i3].IDSelector, + To: reference.To{ + List: &IpgroupV3List{}, + Managed: &IpgroupV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.IPGroup[i3].ID") + } + mg.Spec.InitProvider.IPGroup[i3].ID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.IPGroup[i3].IDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.LoadbalancerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.LoadbalancerIDRef, + Selector: mg.Spec.InitProvider.LoadbalancerIDSelector, + To: reference.To{ + List: &LoadbalancerV3List{}, + Managed: &LoadbalancerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.LoadbalancerID") + } + mg.Spec.InitProvider.LoadbalancerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.LoadbalancerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.SecurityPolicyID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.SecurityPolicyIDRef, + Selector: mg.Spec.InitProvider.SecurityPolicyIDSelector, + To: reference.To{ + List: &SecurityPolicyV3List{}, + Managed: &SecurityPolicyV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.SecurityPolicyID") + } + mg.Spec.InitProvider.SecurityPolicyID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.SecurityPolicyIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this LoadbalancerV3. +func (mg *LoadbalancerV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var mrsp reference.MultiResolutionResponse + var err error + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.NetworkIds), + Extract: common.ExtractNetworkID(), + References: mg.Spec.ForProvider.NetworkIdsRefs, + Selector: mg.Spec.ForProvider.NetworkIdsSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.NetworkIds") + } + mg.Spec.ForProvider.NetworkIds = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.NetworkIdsRefs = mrsp.ResolvedReferences + + for i3 := 0; i3 < len(mg.Spec.ForProvider.PublicIP); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PublicIP[i3].ID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.PublicIP[i3].IDRef, + Selector: mg.Spec.ForProvider.PublicIP[i3].IDSelector, + To: reference.To{ + List: &v1alpha1.EIPV1List{}, + Managed: &v1alpha1.EIPV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PublicIP[i3].ID") + } + mg.Spec.ForProvider.PublicIP[i3].ID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PublicIP[i3].IDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.RouterID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RouterIDRef, + Selector: mg.Spec.ForProvider.RouterIDSelector, + To: reference.To{ + List: &v1alpha1.VpcV1List{}, + Managed: &v1alpha1.VpcV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.RouterID") + } + mg.Spec.ForProvider.RouterID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.RouterIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.SubnetIDRef, + Selector: mg.Spec.ForProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SubnetID") + } + mg.Spec.ForProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.SubnetIDRef = rsp.ResolvedReference + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.InitProvider.NetworkIds), + Extract: common.ExtractNetworkID(), + References: mg.Spec.InitProvider.NetworkIdsRefs, + Selector: mg.Spec.InitProvider.NetworkIdsSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.NetworkIds") + } + mg.Spec.InitProvider.NetworkIds = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.InitProvider.NetworkIdsRefs = mrsp.ResolvedReferences + + for i3 := 0; i3 < len(mg.Spec.InitProvider.PublicIP); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.PublicIP[i3].ID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.PublicIP[i3].IDRef, + Selector: mg.Spec.InitProvider.PublicIP[i3].IDSelector, + To: reference.To{ + List: &v1alpha1.EIPV1List{}, + Managed: &v1alpha1.EIPV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.PublicIP[i3].ID") + } + mg.Spec.InitProvider.PublicIP[i3].ID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.PublicIP[i3].IDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.RouterID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.RouterIDRef, + Selector: mg.Spec.InitProvider.RouterIDSelector, + To: reference.To{ + List: &v1alpha1.VpcV1List{}, + Managed: &v1alpha1.VpcV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.RouterID") + } + mg.Spec.InitProvider.RouterID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.RouterIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.SubnetIDRef, + Selector: mg.Spec.InitProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.SubnetID") + } + mg.Spec.InitProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.SubnetIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this MemberV3. +func (mg *MemberV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.PoolIDRef, + Selector: mg.Spec.ForProvider.PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PoolID") + } + mg.Spec.ForProvider.PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.SubnetIDRef, + Selector: mg.Spec.ForProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SubnetID") + } + mg.Spec.ForProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.SubnetIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.PoolIDRef, + Selector: mg.Spec.InitProvider.PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.PoolID") + } + mg.Spec.InitProvider.PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.PoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.SubnetIDRef, + Selector: mg.Spec.InitProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetV1List{}, + Managed: &v1alpha1.SubnetV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.SubnetID") + } + mg.Spec.InitProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.SubnetIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this MonitorV3. +func (mg *MonitorV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.PoolIDRef, + Selector: mg.Spec.ForProvider.PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PoolID") + } + mg.Spec.ForProvider.PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.PoolIDRef, + Selector: mg.Spec.InitProvider.PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.PoolID") + } + mg.Spec.InitProvider.PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.PoolIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this PolicyV3. +func (mg *PolicyV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ListenerIDRef, + Selector: mg.Spec.ForProvider.ListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ListenerID") + } + mg.Spec.ForProvider.ListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.RedirectListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RedirectListenerIDRef, + Selector: mg.Spec.ForProvider.RedirectListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.RedirectListenerID") + } + mg.Spec.ForProvider.RedirectListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.RedirectListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.RedirectPoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RedirectPoolIDRef, + Selector: mg.Spec.ForProvider.RedirectPoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.RedirectPoolID") + } + mg.Spec.ForProvider.RedirectPoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.RedirectPoolIDRef = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.ForProvider.RedirectPoolsConfig); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolIDRef, + Selector: mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolID") + } + mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.RedirectPoolsConfig[i3].PoolIDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ListenerIDRef, + Selector: mg.Spec.InitProvider.ListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ListenerID") + } + mg.Spec.InitProvider.ListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.RedirectListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.RedirectListenerIDRef, + Selector: mg.Spec.InitProvider.RedirectListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.RedirectListenerID") + } + mg.Spec.InitProvider.RedirectListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.RedirectListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.RedirectPoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.RedirectPoolIDRef, + Selector: mg.Spec.InitProvider.RedirectPoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.RedirectPoolID") + } + mg.Spec.InitProvider.RedirectPoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.RedirectPoolIDRef = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.InitProvider.RedirectPoolsConfig); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolIDRef, + Selector: mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolIDSelector, + To: reference.To{ + List: &PoolV3List{}, + Managed: &PoolV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolID") + } + mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.RedirectPoolsConfig[i3].PoolIDRef = rsp.ResolvedReference + + } + + return nil +} + +// ResolveReferences of this PoolV3. +func (mg *PoolV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ListenerIDRef, + Selector: mg.Spec.ForProvider.ListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ListenerID") + } + mg.Spec.ForProvider.ListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.LoadbalancerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.LoadbalancerIDRef, + Selector: mg.Spec.ForProvider.LoadbalancerIDSelector, + To: reference.To{ + List: &LoadbalancerV3List{}, + Managed: &LoadbalancerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.LoadbalancerID") + } + mg.Spec.ForProvider.LoadbalancerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.LoadbalancerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.VPCID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.VPCIDRef, + Selector: mg.Spec.ForProvider.VPCIDSelector, + To: reference.To{ + List: &v1alpha1.VpcV1List{}, + Managed: &v1alpha1.VpcV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.VPCID") + } + mg.Spec.ForProvider.VPCID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.VPCIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ListenerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ListenerIDRef, + Selector: mg.Spec.InitProvider.ListenerIDSelector, + To: reference.To{ + List: &ListenerV3List{}, + Managed: &ListenerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ListenerID") + } + mg.Spec.InitProvider.ListenerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ListenerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.LoadbalancerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.LoadbalancerIDRef, + Selector: mg.Spec.InitProvider.LoadbalancerIDSelector, + To: reference.To{ + List: &LoadbalancerV3List{}, + Managed: &LoadbalancerV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.LoadbalancerID") + } + mg.Spec.InitProvider.LoadbalancerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.LoadbalancerIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.VPCID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.VPCIDRef, + Selector: mg.Spec.InitProvider.VPCIDSelector, + To: reference.To{ + List: &v1alpha1.VpcV1List{}, + Managed: &v1alpha1.VpcV1{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.VPCID") + } + mg.Spec.InitProvider.VPCID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.VPCIDRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this RuleV3. +func (mg *RuleV3) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PolicyID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.PolicyIDRef, + Selector: mg.Spec.ForProvider.PolicyIDSelector, + To: reference.To{ + List: &PolicyV3List{}, + Managed: &PolicyV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PolicyID") + } + mg.Spec.ForProvider.PolicyID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PolicyIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ProjectID") + } + mg.Spec.ForProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ProjectIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.PolicyID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.PolicyIDRef, + Selector: mg.Spec.InitProvider.PolicyIDSelector, + To: reference.To{ + List: &PolicyV3List{}, + Managed: &PolicyV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.PolicyID") + } + mg.Spec.InitProvider.PolicyID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.PolicyIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ProjectIDRef, + Selector: mg.Spec.InitProvider.ProjectIDSelector, + To: reference.To{ + List: &v1alpha11.ProjectV3List{}, + Managed: &v1alpha11.ProjectV3{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ProjectID") + } + mg.Spec.InitProvider.ProjectID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ProjectIDRef = rsp.ResolvedReference + + return nil +} diff --git a/apis/lb/v1alpha1/zz_ipgroupv3_types.go b/apis/lb/v1alpha1/zz_ipgroupv3_types.go index 33d8031..a071e8a 100755 --- a/apis/lb/v1alpha1/zz_ipgroupv3_types.go +++ b/apis/lb/v1alpha1/zz_ipgroupv3_types.go @@ -20,7 +20,17 @@ type IPListInitParameters struct { // Specifies the IP addresses in the IP address group. // IPv6 is unsupported. The value cannot be an IPv6 address. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.EIPV1 + // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractEipAddress() IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Reference to a EIPV1 in vpc to populate ip. + // +kubebuilder:validation:Optional + IPRef *v1.Reference `json:"ipRef,omitempty" tf:"-"` + + // Selector for a EIPV1 in vpc to populate ip. + // +kubebuilder:validation:Optional + IPSelector *v1.Selector `json:"ipSelector,omitempty" tf:"-"` } type IPListObservation struct { @@ -41,8 +51,18 @@ type IPListParameters struct { // Specifies the IP addresses in the IP address group. // IPv6 is unsupported. The value cannot be an IPv6 address. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.EIPV1 + // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractEipAddress() + // +kubebuilder:validation:Optional + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Reference to a EIPV1 in vpc to populate ip. + // +kubebuilder:validation:Optional + IPRef *v1.Reference `json:"ipRef,omitempty" tf:"-"` + + // Selector for a EIPV1 in vpc to populate ip. // +kubebuilder:validation:Optional - IP *string `json:"ip" tf:"ip,omitempty"` + IPSelector *v1.Selector `json:"ipSelector,omitempty" tf:"-"` } type IpgroupV3InitParameters struct { @@ -58,7 +78,16 @@ type IpgroupV3InitParameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the project ID of the IP address group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` } type IpgroupV3Observation struct { @@ -105,8 +134,17 @@ type IpgroupV3Parameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the project ID of the IP address group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` } // IpgroupV3Spec defines the desired state of IpgroupV3 diff --git a/apis/lb/v1alpha1/zz_l7policyv2_terraformed.go b/apis/lb/v1alpha1/zz_l7policyv2_terraformed.go deleted file mode 100755 index a27761c..0000000 --- a/apis/lb/v1alpha1/zz_l7policyv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this L7PolicyV2 -func (mg *L7PolicyV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_l7policy_v2" -} - -// GetConnectionDetailsMapping for this L7PolicyV2 -func (tr *L7PolicyV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this L7PolicyV2 -func (tr *L7PolicyV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this L7PolicyV2 -func (tr *L7PolicyV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this L7PolicyV2 -func (tr *L7PolicyV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this L7PolicyV2 -func (tr *L7PolicyV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this L7PolicyV2 -func (tr *L7PolicyV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this L7PolicyV2 -func (tr *L7PolicyV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this L7PolicyV2 -func (tr *L7PolicyV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this L7PolicyV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *L7PolicyV2) LateInitialize(attrs []byte) (bool, error) { - params := &L7PolicyV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *L7PolicyV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_l7policyv2_types.go b/apis/lb/v1alpha1/zz_l7policyv2_types.go deleted file mode 100755 index ea3bb91..0000000 --- a/apis/lb/v1alpha1/zz_l7policyv2_types.go +++ /dev/null @@ -1,219 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type L7PolicyV2InitParameters struct { - - // The L7 Policy action - can either be REDIRECT_TO_POOL, - // or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - Action *string `json:"action,omitempty" tf:"action,omitempty"` - - // The administrative state of the L7 Policy. - // This value can only be true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the L7 Policy. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The Listener on which the L7 Policy will be associated with. - // Changing this creates a new L7 Policy. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Human-readable name for the L7 Policy. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy. - Position *float64 `json:"position,omitempty" tf:"position,omitempty"` - - // Requests matching this policy will be redirected to the listener with this ID. - // Only valid if action is REDIRECT_TO_LISTENER. - RedirectListenerID *string `json:"redirectListenerId,omitempty" tf:"redirect_listener_id,omitempty"` - - // Requests matching this policy will be redirected to the pool with this ID. - // Only valid if action is REDIRECT_TO_POOL. - RedirectPoolID *string `json:"redirectPoolId,omitempty" tf:"redirect_pool_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Policy. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Policy. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Policy. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -type L7PolicyV2Observation struct { - - // The L7 Policy action - can either be REDIRECT_TO_POOL, - // or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - Action *string `json:"action,omitempty" tf:"action,omitempty"` - - // The administrative state of the L7 Policy. - // This value can only be true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the L7 Policy. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The unique ID for the L7 policy. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The Listener on which the L7 Policy will be associated with. - // Changing this creates a new L7 Policy. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Human-readable name for the L7 Policy. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy. - Position *float64 `json:"position,omitempty" tf:"position,omitempty"` - - // Requests matching this policy will be redirected to the listener with this ID. - // Only valid if action is REDIRECT_TO_LISTENER. - RedirectListenerID *string `json:"redirectListenerId,omitempty" tf:"redirect_listener_id,omitempty"` - - // Requests matching this policy will be redirected to the pool with this ID. - // Only valid if action is REDIRECT_TO_POOL. - RedirectPoolID *string `json:"redirectPoolId,omitempty" tf:"redirect_pool_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Policy. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Policy. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Policy. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -type L7PolicyV2Parameters struct { - - // The L7 Policy action - can either be REDIRECT_TO_POOL, - // or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - // +kubebuilder:validation:Optional - Action *string `json:"action,omitempty" tf:"action,omitempty"` - - // The administrative state of the L7 Policy. - // This value can only be true (UP). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the L7 Policy. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The Listener on which the L7 Policy will be associated with. - // Changing this creates a new L7 Policy. - // +kubebuilder:validation:Optional - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Human-readable name for the L7 Policy. Does not have - // to be unique. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy. - // +kubebuilder:validation:Optional - Position *float64 `json:"position,omitempty" tf:"position,omitempty"` - - // Requests matching this policy will be redirected to the listener with this ID. - // Only valid if action is REDIRECT_TO_LISTENER. - // +kubebuilder:validation:Optional - RedirectListenerID *string `json:"redirectListenerId,omitempty" tf:"redirect_listener_id,omitempty"` - - // Requests matching this policy will be redirected to the pool with this ID. - // Only valid if action is REDIRECT_TO_POOL. - // +kubebuilder:validation:Optional - RedirectPoolID *string `json:"redirectPoolId,omitempty" tf:"redirect_pool_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Policy. - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Policy. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Policy. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -// L7PolicyV2Spec defines the desired state of L7PolicyV2 -type L7PolicyV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider L7PolicyV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider L7PolicyV2InitParameters `json:"initProvider,omitempty"` -} - -// L7PolicyV2Status defines the observed state of L7PolicyV2. -type L7PolicyV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider L7PolicyV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// L7PolicyV2 is the Schema for the L7PolicyV2s API. Manages a ELB L7 Policy resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type L7PolicyV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.action) || (has(self.initProvider) && has(self.initProvider.action))",message="spec.forProvider.action is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.listenerId) || (has(self.initProvider) && has(self.initProvider.listenerId))",message="spec.forProvider.listenerId is a required parameter" - Spec L7PolicyV2Spec `json:"spec"` - Status L7PolicyV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// L7PolicyV2List contains a list of L7PolicyV2s -type L7PolicyV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []L7PolicyV2 `json:"items"` -} - -// Repository type metadata. -var ( - L7PolicyV2_Kind = "L7PolicyV2" - L7PolicyV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: L7PolicyV2_Kind}.String() - L7PolicyV2_KindAPIVersion = L7PolicyV2_Kind + "." + CRDGroupVersion.String() - L7PolicyV2_GroupVersionKind = CRDGroupVersion.WithKind(L7PolicyV2_Kind) -) - -func init() { - SchemeBuilder.Register(&L7PolicyV2{}, &L7PolicyV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_l7rulev2_terraformed.go b/apis/lb/v1alpha1/zz_l7rulev2_terraformed.go deleted file mode 100755 index 9ddbdba..0000000 --- a/apis/lb/v1alpha1/zz_l7rulev2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this L7RuleV2 -func (mg *L7RuleV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_l7rule_v2" -} - -// GetConnectionDetailsMapping for this L7RuleV2 -func (tr *L7RuleV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this L7RuleV2 -func (tr *L7RuleV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this L7RuleV2 -func (tr *L7RuleV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this L7RuleV2 -func (tr *L7RuleV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this L7RuleV2 -func (tr *L7RuleV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this L7RuleV2 -func (tr *L7RuleV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this L7RuleV2 -func (tr *L7RuleV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this L7RuleV2 -func (tr *L7RuleV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this L7RuleV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *L7RuleV2) LateInitialize(attrs []byte) (bool, error) { - params := &L7RuleV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *L7RuleV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_l7rulev2_types.go b/apis/lb/v1alpha1/zz_l7rulev2_types.go deleted file mode 100755 index af8a59c..0000000 --- a/apis/lb/v1alpha1/zz_l7rulev2_types.go +++ /dev/null @@ -1,201 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type L7RuleV2InitParameters struct { - - // The administrative state of the L7 Rule. - // The value can only be true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The comparison type for the L7 rule - can either be - // STARTS_WITH, EQUAL_TO or REGEX - CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` - - // The key to use for the comparison. For example, the name of the cookie to - // evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - Key *string `json:"key,omitempty" tf:"key,omitempty"` - - // The ID of the L7 Policy to query. Changing this creates a new - // L7 Rule. - L7PolicyID *string `json:"l7policyId,omitempty" tf:"l7policy_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Rule. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Rule. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Rule. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // The value to use for the comparison. For example, the file type to - // compare. - Value *string `json:"value,omitempty" tf:"value,omitempty"` -} - -type L7RuleV2Observation struct { - - // The administrative state of the L7 Rule. - // The value can only be true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The comparison type for the L7 rule - can either be - // STARTS_WITH, EQUAL_TO or REGEX - CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` - - // The unique ID for the L7 Rule. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The key to use for the comparison. For example, the name of the cookie to - // evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - Key *string `json:"key,omitempty" tf:"key,omitempty"` - - // The ID of the L7 Policy to query. Changing this creates a new - // L7 Rule. - L7PolicyID *string `json:"l7policyId,omitempty" tf:"l7policy_id,omitempty"` - - // The ID of the Listener owning this resource. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Rule. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Rule. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Rule. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // The value to use for the comparison. For example, the file type to - // compare. - Value *string `json:"value,omitempty" tf:"value,omitempty"` -} - -type L7RuleV2Parameters struct { - - // The administrative state of the L7 Rule. - // The value can only be true (UP). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The comparison type for the L7 rule - can either be - // STARTS_WITH, EQUAL_TO or REGEX - // +kubebuilder:validation:Optional - CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` - - // The key to use for the comparison. For example, the name of the cookie to - // evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - // +kubebuilder:validation:Optional - Key *string `json:"key,omitempty" tf:"key,omitempty"` - - // The ID of the L7 Policy to query. Changing this creates a new - // L7 Rule. - // +kubebuilder:validation:Optional - L7PolicyID *string `json:"l7policyId,omitempty" tf:"l7policy_id,omitempty"` - - // The region in which to obtain the V2 Networking client. - // If omitted, the region argument of the provider is used. - // Changing this creates a new L7 Rule. - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the L7 Rule. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new L7 Rule. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // The value to use for the comparison. For example, the file type to - // compare. - // +kubebuilder:validation:Optional - Value *string `json:"value,omitempty" tf:"value,omitempty"` -} - -// L7RuleV2Spec defines the desired state of L7RuleV2 -type L7RuleV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider L7RuleV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider L7RuleV2InitParameters `json:"initProvider,omitempty"` -} - -// L7RuleV2Status defines the observed state of L7RuleV2. -type L7RuleV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider L7RuleV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// L7RuleV2 is the Schema for the L7RuleV2s API. Manages a ELB L7 Rule resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type L7RuleV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.compareType) || (has(self.initProvider) && has(self.initProvider.compareType))",message="spec.forProvider.compareType is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.l7policyId) || (has(self.initProvider) && has(self.initProvider.l7policyId))",message="spec.forProvider.l7policyId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.value) || (has(self.initProvider) && has(self.initProvider.value))",message="spec.forProvider.value is a required parameter" - Spec L7RuleV2Spec `json:"spec"` - Status L7RuleV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// L7RuleV2List contains a list of L7RuleV2s -type L7RuleV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []L7RuleV2 `json:"items"` -} - -// Repository type metadata. -var ( - L7RuleV2_Kind = "L7RuleV2" - L7RuleV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: L7RuleV2_Kind}.String() - L7RuleV2_KindAPIVersion = L7RuleV2_Kind + "." + CRDGroupVersion.String() - L7RuleV2_GroupVersionKind = CRDGroupVersion.WithKind(L7RuleV2_Kind) -) - -func init() { - SchemeBuilder.Register(&L7RuleV2{}, &L7RuleV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_listenerv2_terraformed.go b/apis/lb/v1alpha1/zz_listenerv2_terraformed.go deleted file mode 100755 index fcdb880..0000000 --- a/apis/lb/v1alpha1/zz_listenerv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this ListenerV2 -func (mg *ListenerV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_listener_v2" -} - -// GetConnectionDetailsMapping for this ListenerV2 -func (tr *ListenerV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this ListenerV2 -func (tr *ListenerV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this ListenerV2 -func (tr *ListenerV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this ListenerV2 -func (tr *ListenerV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this ListenerV2 -func (tr *ListenerV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this ListenerV2 -func (tr *ListenerV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this ListenerV2 -func (tr *ListenerV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this ListenerV2 -func (tr *ListenerV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this ListenerV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *ListenerV2) LateInitialize(attrs []byte) (bool, error) { - params := &ListenerV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *ListenerV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_listenerv2_types.go b/apis/lb/v1alpha1/zz_listenerv2_types.go deleted file mode 100755 index a2dfa5b..0000000 --- a/apis/lb/v1alpha1/zz_listenerv2_types.go +++ /dev/null @@ -1,398 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type IPGroupInitParameters struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type IPGroupObservation struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type IPGroupParameters struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - // +kubebuilder:validation:Optional - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - // +kubebuilder:validation:Optional - ID *string `json:"id" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type ListenerV2InitParameters struct { - - // The administrative state of the Listener. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Specifies the ID of a certificate container of type client - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - // the client CA whose certificate is registered in the referenced certificate container. The option is - // effective only in conjunction with TERMINATED_HTTPS. - ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` - - // The ID of the default pool with which the - // Listener is associated. Changing this creates a new Listener. - DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` - - // Specifies the ID of a certificate container of type server - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // This parameter is required when protocol is set to TERMINATED_HTTPS. - // See here - // for more information. - DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` - - // Human-readable description for the Listener. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // true to enable HTTP/2 mode of ELB. - // HTTP/2 is disabled by default if not set. - Http2Enable *bool `json:"http2Enable,omitempty" tf:"http2_enable,omitempty"` - - // Specifies the IP address group associated with the listener. - IPGroup []IPGroupInitParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` - - // The load balancer on which to provision this - // Listener. Changing this creates a new Listener. - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the Listener. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - // Changing this creates a new Listener. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new Listener. - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Lists the IDs of SNI certificates (server certificates with a domain name) used - // by the listener. If the parameter value is an empty list, the SNI feature is disabled. - // The default value is []. It only works in conjunction with TERMINATED_HTTPS. - // +listType=set - SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` - - // Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - // tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - // here for details about the supported cipher - // suites. The option is effective only in conjunction with TERMINATED_HTTPS. - TLSCiphersPolicy *string `json:"tlsCiphersPolicy,omitempty" tf:"tls_ciphers_policy,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer listener. - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Listener. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new Listener. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies whether to pass source IP addresses of the clients to - // backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - // value can be true or false with false by default. - TransparentClientIPEnable *bool `json:"transparentClientIpEnable,omitempty" tf:"transparent_client_ip_enable,omitempty"` -} - -type ListenerV2Observation struct { - - // The administrative state of the Listener. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Specifies the ID of a certificate container of type client - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - // the client CA whose certificate is registered in the referenced certificate container. The option is - // effective only in conjunction with TERMINATED_HTTPS. - ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` - - // The ID of the default pool with which the - // Listener is associated. Changing this creates a new Listener. - DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` - - // Specifies the ID of a certificate container of type server - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // This parameter is required when protocol is set to TERMINATED_HTTPS. - // See here - // for more information. - DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` - - // Human-readable description for the Listener. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // true to enable HTTP/2 mode of ELB. - // HTTP/2 is disabled by default if not set. - Http2Enable *bool `json:"http2Enable,omitempty" tf:"http2_enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Specifies the IP address group associated with the listener. - IPGroup []IPGroupObservation `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` - - // The load balancer on which to provision this - // Listener. Changing this creates a new Listener. - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the Listener. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - // Changing this creates a new Listener. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new Listener. - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Lists the IDs of SNI certificates (server certificates with a domain name) used - // by the listener. If the parameter value is an empty list, the SNI feature is disabled. - // The default value is []. It only works in conjunction with TERMINATED_HTTPS. - // +listType=set - SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` - - // Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - // tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - // here for details about the supported cipher - // suites. The option is effective only in conjunction with TERMINATED_HTTPS. - TLSCiphersPolicy *string `json:"tlsCiphersPolicy,omitempty" tf:"tls_ciphers_policy,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer listener. - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Listener. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new Listener. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies whether to pass source IP addresses of the clients to - // backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - // value can be true or false with false by default. - TransparentClientIPEnable *bool `json:"transparentClientIpEnable,omitempty" tf:"transparent_client_ip_enable,omitempty"` -} - -type ListenerV2Parameters struct { - - // The administrative state of the Listener. - // A valid value is true (UP) or false (DOWN). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Specifies the ID of a certificate container of type client - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - // the client CA whose certificate is registered in the referenced certificate container. The option is - // effective only in conjunction with TERMINATED_HTTPS. - // +kubebuilder:validation:Optional - ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` - - // The ID of the default pool with which the - // Listener is associated. Changing this creates a new Listener. - // +kubebuilder:validation:Optional - DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` - - // Specifies the ID of a certificate container of type server - // used by the listener. The value contains a maximum of 128 characters. The default value is null. - // This parameter is required when protocol is set to TERMINATED_HTTPS. - // See here - // for more information. - // +kubebuilder:validation:Optional - DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` - - // Human-readable description for the Listener. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // true to enable HTTP/2 mode of ELB. - // HTTP/2 is disabled by default if not set. - // +kubebuilder:validation:Optional - Http2Enable *bool `json:"http2Enable,omitempty" tf:"http2_enable,omitempty"` - - // Specifies the IP address group associated with the listener. - // +kubebuilder:validation:Optional - IPGroup []IPGroupParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` - - // The load balancer on which to provision this - // Listener. Changing this creates a new Listener. - // +kubebuilder:validation:Optional - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the Listener. Does not have - // to be unique. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - // Changing this creates a new Listener. - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new Listener. - // +kubebuilder:validation:Optional - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Lists the IDs of SNI certificates (server certificates with a domain name) used - // by the listener. If the parameter value is an empty list, the SNI feature is disabled. - // The default value is []. It only works in conjunction with TERMINATED_HTTPS. - // +kubebuilder:validation:Optional - // +listType=set - SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` - - // Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - // tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - // here for details about the supported cipher - // suites. The option is effective only in conjunction with TERMINATED_HTTPS. - // +kubebuilder:validation:Optional - TLSCiphersPolicy *string `json:"tlsCiphersPolicy,omitempty" tf:"tls_ciphers_policy,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer listener. - // +kubebuilder:validation:Optional - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Listener. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new Listener. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies whether to pass source IP addresses of the clients to - // backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - // value can be true or false with false by default. - // +kubebuilder:validation:Optional - TransparentClientIPEnable *bool `json:"transparentClientIpEnable,omitempty" tf:"transparent_client_ip_enable,omitempty"` -} - -// ListenerV2Spec defines the desired state of ListenerV2 -type ListenerV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider ListenerV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider ListenerV2InitParameters `json:"initProvider,omitempty"` -} - -// ListenerV2Status defines the observed state of ListenerV2. -type ListenerV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider ListenerV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// ListenerV2 is the Schema for the ListenerV2s API. Manages a ELB Listener resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type ListenerV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.loadbalancerId) || (has(self.initProvider) && has(self.initProvider.loadbalancerId))",message="spec.forProvider.loadbalancerId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocolPort) || (has(self.initProvider) && has(self.initProvider.protocolPort))",message="spec.forProvider.protocolPort is a required parameter" - Spec ListenerV2Spec `json:"spec"` - Status ListenerV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// ListenerV2List contains a list of ListenerV2s -type ListenerV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []ListenerV2 `json:"items"` -} - -// Repository type metadata. -var ( - ListenerV2_Kind = "ListenerV2" - ListenerV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ListenerV2_Kind}.String() - ListenerV2_KindAPIVersion = ListenerV2_Kind + "." + CRDGroupVersion.String() - ListenerV2_GroupVersionKind = CRDGroupVersion.WithKind(ListenerV2_Kind) -) - -func init() { - SchemeBuilder.Register(&ListenerV2{}, &ListenerV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_listenerv3_types.go b/apis/lb/v1alpha1/zz_listenerv3_types.go index b8c59f6..e9ceefe 100755 --- a/apis/lb/v1alpha1/zz_listenerv3_types.go +++ b/apis/lb/v1alpha1/zz_listenerv3_types.go @@ -13,6 +13,84 @@ import ( v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" ) +type IPGroupInitParameters struct { + + // Specifies whether to enable access control. + // true: Access control will be enabled. + // false (default): Access control will be disabled. + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the ID of the IP address group associated with the listener. + // Specifies the ID of the IP address group associated with the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.IpgroupV3 + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Reference to a IpgroupV3 in lb to populate id. + // +kubebuilder:validation:Optional + IDRef *v1.Reference `json:"idRef,omitempty" tf:"-"` + + // Selector for a IpgroupV3 in lb to populate id. + // +kubebuilder:validation:Optional + IDSelector *v1.Selector `json:"idSelector,omitempty" tf:"-"` + + // Specifies how access to the listener is controlled. + // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. + // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type IPGroupObservation struct { + + // Specifies whether to enable access control. + // true: Access control will be enabled. + // false (default): Access control will be disabled. + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the ID of the IP address group associated with the listener. + // Specifies the ID of the IP address group associated with the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies how access to the listener is controlled. + // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. + // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type IPGroupParameters struct { + + // Specifies whether to enable access control. + // true: Access control will be enabled. + // false (default): Access control will be disabled. + // +kubebuilder:validation:Optional + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the ID of the IP address group associated with the listener. + // Specifies the ID of the IP address group associated with the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. + // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.IpgroupV3 + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Reference to a IpgroupV3 in lb to populate id. + // +kubebuilder:validation:Optional + IDRef *v1.Reference `json:"idRef,omitempty" tf:"-"` + + // Selector for a IpgroupV3 in lb to populate id. + // +kubebuilder:validation:Optional + IDSelector *v1.Selector `json:"idSelector,omitempty" tf:"-"` + + // Specifies how access to the listener is controlled. + // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. + // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + type InsertHeadersInitParameters struct { // Specifies whether to transparently transmit the load balancer EIP @@ -86,66 +164,6 @@ type InsertHeadersParameters struct { ForwardedPort *bool `json:"forwardedPort,omitempty" tf:"forwarded_port,omitempty"` } -type ListenerV3IPGroupInitParameters struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type ListenerV3IPGroupObservation struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type ListenerV3IPGroupParameters struct { - - // Specifies whether to enable access control. - // true: Access control will be enabled. - // false (default): Access control will be disabled. - // +kubebuilder:validation:Optional - Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` - - // Specifies the ID of the IP address group associated with the listener. - // Specifies the ID of the IP address group associated with the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - // If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - // +kubebuilder:validation:Optional - ID *string `json:"id" tf:"id,omitempty"` - - // Specifies how access to the listener is controlled. - // white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - // black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - type ListenerV3InitParameters struct { AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` @@ -165,11 +183,29 @@ type ListenerV3InitParameters struct { // Specifies the ID of the default backend server group. If there is no // matched forwarding policy, requests are forwarded to the default backend server for processing. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate defaultPoolId. + // +kubebuilder:validation:Optional + DefaultPoolIDRef *v1.Reference `json:"defaultPoolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate defaultPoolId. + // +kubebuilder:validation:Optional + DefaultPoolIDSelector *v1.Selector `json:"defaultPoolIdSelector,omitempty" tf:"-"` + // Specifies the ID of the server certificate used by the listener. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.CertificateV3 DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` + // Reference to a CertificateV3 in lb to populate defaultTlsContainerRef. + // +kubebuilder:validation:Optional + DefaultTLSContainerRefRef *v1.Reference `json:"defaultTlsContainerRefRef,omitempty" tf:"-"` + + // Selector for a CertificateV3 in lb to populate defaultTlsContainerRef. + // +kubebuilder:validation:Optional + DefaultTLSContainerRefSelector *v1.Selector `json:"defaultTlsContainerRefSelector,omitempty" tf:"-"` + // Provides supplementary information about the listener. Description *string `json:"description,omitempty" tf:"description,omitempty"` @@ -180,7 +216,7 @@ type ListenerV3InitParameters struct { Http2Enable *bool `json:"http2Enable,omitempty" tf:"http2_enable,omitempty"` // Specifies the IP address group associated with the listener. - IPGroup []ListenerV3IPGroupInitParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` + IPGroup []IPGroupInitParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` // Specifies the HTTP header fields. InsertHeaders []InsertHeadersInitParameters `json:"insertHeaders,omitempty" tf:"insert_headers,omitempty"` @@ -189,8 +225,17 @@ type ListenerV3InitParameters struct { KeepAliveTimeout *float64 `json:"keepAliveTimeout,omitempty" tf:"keep_alive_timeout,omitempty"` // Specifies the ID of the load balancer that the listener is added to. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.LoadbalancerV3 LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + // Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDRef *v1.Reference `json:"loadbalancerIdRef,omitempty" tf:"-"` + + // Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDSelector *v1.Selector `json:"loadbalancerIdSelector,omitempty" tf:"-"` + // Specifies whether to enable health check retries for backend servers. // This parameter is available only for HTTP and HTTPS listeners. An error will be returned if you configure // this parameter for TCP and UDP listeners. @@ -213,8 +258,17 @@ type ListenerV3InitParameters struct { ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` // Specifies the ID of the custom security policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.SecurityPolicyV3 SecurityPolicyID *string `json:"securityPolicyId,omitempty" tf:"security_policy_id,omitempty"` + // Reference to a SecurityPolicyV3 in lb to populate securityPolicyId. + // +kubebuilder:validation:Optional + SecurityPolicyIDRef *v1.Reference `json:"securityPolicyIdRef,omitempty" tf:"-"` + + // Selector for a SecurityPolicyV3 in lb to populate securityPolicyId. + // +kubebuilder:validation:Optional + SecurityPolicyIDSelector *v1.Selector `json:"securityPolicyIdSelector,omitempty" tf:"-"` + // Lists the IDs of SNI certificates (server certificates with domain names) used by the listener. // Each SNI certificate can have up to 30 domain names, and each domain name in the SNI certificate must be unique. // This parameter will be ignored and an empty array will be returned if the listener's protocol is not HTTPS. @@ -279,7 +333,7 @@ type ListenerV3Observation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` // Specifies the IP address group associated with the listener. - IPGroup []ListenerV3IPGroupObservation `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` + IPGroup []IPGroupObservation `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` // Specifies the HTTP header fields. InsertHeaders []InsertHeadersObservation `json:"insertHeaders,omitempty" tf:"insert_headers,omitempty"` @@ -362,13 +416,31 @@ type ListenerV3Parameters struct { // Specifies the ID of the default backend server group. If there is no // matched forwarding policy, requests are forwarded to the default backend server for processing. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 // +kubebuilder:validation:Optional DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate defaultPoolId. + // +kubebuilder:validation:Optional + DefaultPoolIDRef *v1.Reference `json:"defaultPoolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate defaultPoolId. + // +kubebuilder:validation:Optional + DefaultPoolIDSelector *v1.Selector `json:"defaultPoolIdSelector,omitempty" tf:"-"` + // Specifies the ID of the server certificate used by the listener. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.CertificateV3 // +kubebuilder:validation:Optional DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` + // Reference to a CertificateV3 in lb to populate defaultTlsContainerRef. + // +kubebuilder:validation:Optional + DefaultTLSContainerRefRef *v1.Reference `json:"defaultTlsContainerRefRef,omitempty" tf:"-"` + + // Selector for a CertificateV3 in lb to populate defaultTlsContainerRef. + // +kubebuilder:validation:Optional + DefaultTLSContainerRefSelector *v1.Selector `json:"defaultTlsContainerRefSelector,omitempty" tf:"-"` + // Provides supplementary information about the listener. // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` @@ -382,7 +454,7 @@ type ListenerV3Parameters struct { // Specifies the IP address group associated with the listener. // +kubebuilder:validation:Optional - IPGroup []ListenerV3IPGroupParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` + IPGroup []IPGroupParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` // Specifies the HTTP header fields. // +kubebuilder:validation:Optional @@ -393,9 +465,18 @@ type ListenerV3Parameters struct { KeepAliveTimeout *float64 `json:"keepAliveTimeout,omitempty" tf:"keep_alive_timeout,omitempty"` // Specifies the ID of the load balancer that the listener is added to. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.LoadbalancerV3 // +kubebuilder:validation:Optional LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + // Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDRef *v1.Reference `json:"loadbalancerIdRef,omitempty" tf:"-"` + + // Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDSelector *v1.Selector `json:"loadbalancerIdSelector,omitempty" tf:"-"` + // Specifies whether to enable health check retries for backend servers. // This parameter is available only for HTTP and HTTPS listeners. An error will be returned if you configure // this parameter for TCP and UDP listeners. @@ -423,9 +504,18 @@ type ListenerV3Parameters struct { ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` // Specifies the ID of the custom security policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.SecurityPolicyV3 // +kubebuilder:validation:Optional SecurityPolicyID *string `json:"securityPolicyId,omitempty" tf:"security_policy_id,omitempty"` + // Reference to a SecurityPolicyV3 in lb to populate securityPolicyId. + // +kubebuilder:validation:Optional + SecurityPolicyIDRef *v1.Reference `json:"securityPolicyIdRef,omitempty" tf:"-"` + + // Selector for a SecurityPolicyV3 in lb to populate securityPolicyId. + // +kubebuilder:validation:Optional + SecurityPolicyIDSelector *v1.Selector `json:"securityPolicyIdSelector,omitempty" tf:"-"` + // Lists the IDs of SNI certificates (server certificates with domain names) used by the listener. // Each SNI certificate can have up to 30 domain names, and each domain name in the SNI certificate must be unique. // This parameter will be ignored and an empty array will be returned if the listener's protocol is not HTTPS. @@ -487,7 +577,6 @@ type ListenerV3Status struct { type ListenerV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.loadbalancerId) || (has(self.initProvider) && has(self.initProvider.loadbalancerId))",message="spec.forProvider.loadbalancerId is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocolPort) || (has(self.initProvider) && has(self.initProvider.protocolPort))",message="spec.forProvider.protocolPort is a required parameter" Spec ListenerV3Spec `json:"spec"` diff --git a/apis/lb/v1alpha1/zz_loadbalancerv2_terraformed.go b/apis/lb/v1alpha1/zz_loadbalancerv2_terraformed.go deleted file mode 100755 index f5acb64..0000000 --- a/apis/lb/v1alpha1/zz_loadbalancerv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this LoadbalancerV2 -func (mg *LoadbalancerV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_loadbalancer_v2" -} - -// GetConnectionDetailsMapping for this LoadbalancerV2 -func (tr *LoadbalancerV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this LoadbalancerV2 -func (tr *LoadbalancerV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this LoadbalancerV2 -func (tr *LoadbalancerV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this LoadbalancerV2 -func (tr *LoadbalancerV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this LoadbalancerV2 -func (tr *LoadbalancerV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this LoadbalancerV2 -func (tr *LoadbalancerV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this LoadbalancerV2 -func (tr *LoadbalancerV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this LoadbalancerV2 -func (tr *LoadbalancerV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this LoadbalancerV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *LoadbalancerV2) LateInitialize(attrs []byte) (bool, error) { - params := &LoadbalancerV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *LoadbalancerV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_loadbalancerv2_types.go b/apis/lb/v1alpha1/zz_loadbalancerv2_types.go deleted file mode 100755 index 0ca51a7..0000000 --- a/apis/lb/v1alpha1/zz_loadbalancerv2_types.go +++ /dev/null @@ -1,207 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type LoadbalancerV2InitParameters struct { - - // The administrative state of the loadbalancer. - // A valid value is only true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the loadbalancer. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The name of the provider. Changing this - // creates a new loadbalancer. - LoadbalancerProvider *string `json:"loadbalancerProvider,omitempty" tf:"loadbalancer_provider,omitempty"` - - // Human-readable name for the loadbalancer. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer. - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Loadbalancer. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new loadbalancer. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The ip address of the load balancer. - // Changing this creates a new loadbalancer. - VipAddress *string `json:"vipAddress,omitempty" tf:"vip_address,omitempty"` - - // The network on which to allocate the - // loadbalancer's address. A tenant can only create loadalancers on networks - // authorized by policy (e.g. networks that belong to them or networks that - // are shared). Changing this creates a new loadbalancer. - VipSubnetID *string `json:"vipSubnetId,omitempty" tf:"vip_subnet_id,omitempty"` -} - -type LoadbalancerV2Observation struct { - - // The administrative state of the loadbalancer. - // A valid value is only true (UP). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the loadbalancer. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The name of the provider. Changing this - // creates a new loadbalancer. - LoadbalancerProvider *string `json:"loadbalancerProvider,omitempty" tf:"loadbalancer_provider,omitempty"` - - // Human-readable name for the loadbalancer. Does not have - // to be unique. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer. - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Loadbalancer. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new loadbalancer. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The ip address of the load balancer. - // Changing this creates a new loadbalancer. - VipAddress *string `json:"vipAddress,omitempty" tf:"vip_address,omitempty"` - - // The Port ID of the Load Balancer IP. - VipPortID *string `json:"vipPortId,omitempty" tf:"vip_port_id,omitempty"` - - // The network on which to allocate the - // loadbalancer's address. A tenant can only create loadalancers on networks - // authorized by policy (e.g. networks that belong to them or networks that - // are shared). Changing this creates a new loadbalancer. - VipSubnetID *string `json:"vipSubnetId,omitempty" tf:"vip_subnet_id,omitempty"` -} - -type LoadbalancerV2Parameters struct { - - // The administrative state of the loadbalancer. - // A valid value is only true (UP). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the loadbalancer. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The name of the provider. Changing this - // creates a new loadbalancer. - // +kubebuilder:validation:Optional - LoadbalancerProvider *string `json:"loadbalancerProvider,omitempty" tf:"loadbalancer_provider,omitempty"` - - // Human-readable name for the loadbalancer. Does not have - // to be unique. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Tags key/value pairs to associate with the loadbalancer. - // +kubebuilder:validation:Optional - // +mapType=granular - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the Loadbalancer. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new loadbalancer. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // The ip address of the load balancer. - // Changing this creates a new loadbalancer. - // +kubebuilder:validation:Optional - VipAddress *string `json:"vipAddress,omitempty" tf:"vip_address,omitempty"` - - // The network on which to allocate the - // loadbalancer's address. A tenant can only create loadalancers on networks - // authorized by policy (e.g. networks that belong to them or networks that - // are shared). Changing this creates a new loadbalancer. - // +kubebuilder:validation:Optional - VipSubnetID *string `json:"vipSubnetId,omitempty" tf:"vip_subnet_id,omitempty"` -} - -// LoadbalancerV2Spec defines the desired state of LoadbalancerV2 -type LoadbalancerV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider LoadbalancerV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider LoadbalancerV2InitParameters `json:"initProvider,omitempty"` -} - -// LoadbalancerV2Status defines the observed state of LoadbalancerV2. -type LoadbalancerV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider LoadbalancerV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// LoadbalancerV2 is the Schema for the LoadbalancerV2s API. Manages a ELB Loadbalancer resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type LoadbalancerV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vipSubnetId) || (has(self.initProvider) && has(self.initProvider.vipSubnetId))",message="spec.forProvider.vipSubnetId is a required parameter" - Spec LoadbalancerV2Spec `json:"spec"` - Status LoadbalancerV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// LoadbalancerV2List contains a list of LoadbalancerV2s -type LoadbalancerV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []LoadbalancerV2 `json:"items"` -} - -// Repository type metadata. -var ( - LoadbalancerV2_Kind = "LoadbalancerV2" - LoadbalancerV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LoadbalancerV2_Kind}.String() - LoadbalancerV2_KindAPIVersion = LoadbalancerV2_Kind + "." + CRDGroupVersion.String() - LoadbalancerV2_GroupVersionKind = CRDGroupVersion.WithKind(LoadbalancerV2_Kind) -) - -func init() { - SchemeBuilder.Register(&LoadbalancerV2{}, &LoadbalancerV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_loadbalancerv3_types.go b/apis/lb/v1alpha1/zz_loadbalancerv3_types.go index c12b024..e6069ab 100755 --- a/apis/lb/v1alpha1/zz_loadbalancerv3_types.go +++ b/apis/lb/v1alpha1/zz_loadbalancerv3_types.go @@ -44,20 +44,48 @@ type LoadbalancerV3InitParameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the subnet Network ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 + // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractNetworkID() // +listType=set NetworkIds []*string `json:"networkIds,omitempty" tf:"network_ids,omitempty"` + // References to SubnetV1 in vpc to populate networkIds. + // +kubebuilder:validation:Optional + NetworkIdsRefs []v1.Reference `json:"networkIdsRefs,omitempty" tf:"-"` + + // Selector for a list of SubnetV1 in vpc to populate networkIds. + // +kubebuilder:validation:Optional + NetworkIdsSelector *v1.Selector `json:"networkIdsSelector,omitempty" tf:"-"` + // The elastic IP address of the instance. The public_ip structure // is described below. Changing this creates a new LoadBalancer. PublicIP []PublicIPInitParameters `json:"publicIp,omitempty" tf:"public_ip,omitempty"` // ID of the router (or VPC) this LoadBalancer belongs to. Changing // this creates a new LoadBalancer. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.VpcV1 RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + // Reference to a VpcV1 in vpc to populate routerId. + // +kubebuilder:validation:Optional + RouterIDRef *v1.Reference `json:"routerIdRef,omitempty" tf:"-"` + + // Selector for a VpcV1 in vpc to populate routerId. + // +kubebuilder:validation:Optional + RouterIDSelector *v1.Selector `json:"routerIdSelector,omitempty" tf:"-"` + // The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + // Reference to a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + // Tags key/value pairs to associate with the load balancer. // +mapType=granular Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` @@ -170,10 +198,20 @@ type LoadbalancerV3Parameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the subnet Network ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 + // +crossplane:generate:reference:extractor=github.com/opentelekomcloud/provider-opentelekomcloud/config/common.ExtractNetworkID() // +kubebuilder:validation:Optional // +listType=set NetworkIds []*string `json:"networkIds,omitempty" tf:"network_ids,omitempty"` + // References to SubnetV1 in vpc to populate networkIds. + // +kubebuilder:validation:Optional + NetworkIdsRefs []v1.Reference `json:"networkIdsRefs,omitempty" tf:"-"` + + // Selector for a list of SubnetV1 in vpc to populate networkIds. + // +kubebuilder:validation:Optional + NetworkIdsSelector *v1.Selector `json:"networkIdsSelector,omitempty" tf:"-"` + // The elastic IP address of the instance. The public_ip structure // is described below. Changing this creates a new LoadBalancer. // +kubebuilder:validation:Optional @@ -181,13 +219,31 @@ type LoadbalancerV3Parameters struct { // ID of the router (or VPC) this LoadBalancer belongs to. Changing // this creates a new LoadBalancer. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.VpcV1 // +kubebuilder:validation:Optional RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + // Reference to a VpcV1 in vpc to populate routerId. + // +kubebuilder:validation:Optional + RouterIDRef *v1.Reference `json:"routerIdRef,omitempty" tf:"-"` + + // Selector for a VpcV1 in vpc to populate routerId. + // +kubebuilder:validation:Optional + RouterIDSelector *v1.Selector `json:"routerIdSelector,omitempty" tf:"-"` + // The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 // +kubebuilder:validation:Optional SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + // Reference to a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + // Tags key/value pairs to associate with the load balancer. // +kubebuilder:validation:Optional // +mapType=granular @@ -214,8 +270,17 @@ type PublicIPInitParameters struct { BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` // ID of an existing elastic IP. Required when using existing EIP. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.EIPV1 ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Reference to a EIPV1 in vpc to populate id. + // +kubebuilder:validation:Optional + IDRef *v1.Reference `json:"idRef,omitempty" tf:"-"` + + // Selector for a EIPV1 in vpc to populate id. + // +kubebuilder:validation:Optional + IDSelector *v1.Selector `json:"idSelector,omitempty" tf:"-"` + // Elastic IP type. The value can be 5_bgp or 5_mailbgp. // Required when creating a new EIP. IPType *string `json:"ipType,omitempty" tf:"ip_type,omitempty"` @@ -267,9 +332,18 @@ type PublicIPParameters struct { BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` // ID of an existing elastic IP. Required when using existing EIP. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.EIPV1 // +kubebuilder:validation:Optional ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Reference to a EIPV1 in vpc to populate id. + // +kubebuilder:validation:Optional + IDRef *v1.Reference `json:"idRef,omitempty" tf:"-"` + + // Selector for a EIPV1 in vpc to populate id. + // +kubebuilder:validation:Optional + IDSelector *v1.Selector `json:"idSelector,omitempty" tf:"-"` + // Elastic IP type. The value can be 5_bgp or 5_mailbgp. // Required when creating a new EIP. // +kubebuilder:validation:Optional @@ -313,7 +387,6 @@ type LoadbalancerV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.availabilityZones) || (has(self.initProvider) && has(self.initProvider.availabilityZones))",message="spec.forProvider.availabilityZones is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.networkIds) || (has(self.initProvider) && has(self.initProvider.networkIds))",message="spec.forProvider.networkIds is a required parameter" Spec LoadbalancerV3Spec `json:"spec"` Status LoadbalancerV3Status `json:"status,omitempty"` } diff --git a/apis/lb/v1alpha1/zz_memberv2_terraformed.go b/apis/lb/v1alpha1/zz_memberv2_terraformed.go deleted file mode 100755 index 94bd631..0000000 --- a/apis/lb/v1alpha1/zz_memberv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this MemberV2 -func (mg *MemberV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_member_v2" -} - -// GetConnectionDetailsMapping for this MemberV2 -func (tr *MemberV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this MemberV2 -func (tr *MemberV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this MemberV2 -func (tr *MemberV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this MemberV2 -func (tr *MemberV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this MemberV2 -func (tr *MemberV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this MemberV2 -func (tr *MemberV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this MemberV2 -func (tr *MemberV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this MemberV2 -func (tr *MemberV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this MemberV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *MemberV2) LateInitialize(attrs []byte) (bool, error) { - params := &MemberV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *MemberV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_memberv2_types.go b/apis/lb/v1alpha1/zz_memberv2_types.go deleted file mode 100755 index 8560c7d..0000000 --- a/apis/lb/v1alpha1/zz_memberv2_types.go +++ /dev/null @@ -1,205 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type MemberV2InitParameters struct { - - // The IP address of the member to receive traffic from - // the load balancer. Changing this creates a new member. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - - // The administrative state of the member. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable name for the member. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this member will be - // assigned to. - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new member. - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The subnet in which to access the member - SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the member. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new member. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // A positive integer value that indicates the relative - // portion of traffic that this member should receive from the pool. For - // example, a member with a weight of 10 receives five times as much traffic - // as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` -} - -type MemberV2Observation struct { - - // The IP address of the member to receive traffic from - // the load balancer. Changing this creates a new member. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - - // The administrative state of the member. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The unique ID for the member. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Human-readable name for the member. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this member will be - // assigned to. - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new member. - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The subnet in which to access the member - SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the member. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new member. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // A positive integer value that indicates the relative - // portion of traffic that this member should receive from the pool. For - // example, a member with a weight of 10 receives five times as much traffic - // as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` -} - -type MemberV2Parameters struct { - - // The IP address of the member to receive traffic from - // the load balancer. Changing this creates a new member. - // +kubebuilder:validation:Optional - Address *string `json:"address,omitempty" tf:"address,omitempty"` - - // The administrative state of the member. - // A valid value is true (UP) or false (DOWN). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable name for the member. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this member will be - // assigned to. - // +kubebuilder:validation:Optional - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - // The port on which to listen for client traffic. - // Changing this creates a new member. - // +kubebuilder:validation:Optional - ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` - - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The subnet in which to access the member - // +kubebuilder:validation:Optional - SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the member. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new member. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // A positive integer value that indicates the relative - // portion of traffic that this member should receive from the pool. For - // example, a member with a weight of 10 receives five times as much traffic - // as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - // +kubebuilder:validation:Optional - Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` -} - -// MemberV2Spec defines the desired state of MemberV2 -type MemberV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider MemberV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider MemberV2InitParameters `json:"initProvider,omitempty"` -} - -// MemberV2Status defines the observed state of MemberV2. -type MemberV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider MemberV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// MemberV2 is the Schema for the MemberV2s API. Manages a ELB Member resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type MemberV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.address) || (has(self.initProvider) && has(self.initProvider.address))",message="spec.forProvider.address is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.poolId) || (has(self.initProvider) && has(self.initProvider.poolId))",message="spec.forProvider.poolId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocolPort) || (has(self.initProvider) && has(self.initProvider.protocolPort))",message="spec.forProvider.protocolPort is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.subnetId) || (has(self.initProvider) && has(self.initProvider.subnetId))",message="spec.forProvider.subnetId is a required parameter" - Spec MemberV2Spec `json:"spec"` - Status MemberV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// MemberV2List contains a list of MemberV2s -type MemberV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []MemberV2 `json:"items"` -} - -// Repository type metadata. -var ( - MemberV2_Kind = "MemberV2" - MemberV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MemberV2_Kind}.String() - MemberV2_KindAPIVersion = MemberV2_Kind + "." + CRDGroupVersion.String() - MemberV2_GroupVersionKind = CRDGroupVersion.WithKind(MemberV2_Kind) -) - -func init() { - SchemeBuilder.Register(&MemberV2{}, &MemberV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_memberv3_types.go b/apis/lb/v1alpha1/zz_memberv3_types.go index 2f136ac..12681d5 100755 --- a/apis/lb/v1alpha1/zz_memberv3_types.go +++ b/apis/lb/v1alpha1/zz_memberv3_types.go @@ -21,18 +21,45 @@ type MemberV3InitParameters struct { // Specifies the backend server name. The value is a string of 0 to 255 characters. Name *string `json:"name,omitempty" tf:"name,omitempty"` + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` + // Specifies the project ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the port used by the backend server to receive requests. The value should be a // valid port. ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` // , for example, 192.168.3.11. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + // Reference to a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + // Specifies the weight of the backend server. Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` } @@ -82,22 +109,49 @@ type MemberV3Parameters struct { // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 // +kubebuilder:validation:Optional PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` + // Specifies the project ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the port used by the backend server to receive requests. The value should be a // valid port. // +kubebuilder:validation:Optional ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` // , for example, 192.168.3.11. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.SubnetV1 // +kubebuilder:validation:Optional SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + // Reference to a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a SubnetV1 in vpc to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + // Specifies the weight of the backend server. // +kubebuilder:validation:Optional Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` @@ -140,7 +194,6 @@ type MemberV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.address) || (has(self.initProvider) && has(self.initProvider.address))",message="spec.forProvider.address is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.poolId) || (has(self.initProvider) && has(self.initProvider.poolId))",message="spec.forProvider.poolId is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocolPort) || (has(self.initProvider) && has(self.initProvider.protocolPort))",message="spec.forProvider.protocolPort is a required parameter" Spec MemberV3Spec `json:"spec"` Status MemberV3Status `json:"status,omitempty"` diff --git a/apis/lb/v1alpha1/zz_monitorv2_terraformed.go b/apis/lb/v1alpha1/zz_monitorv2_terraformed.go deleted file mode 100755 index ca86028..0000000 --- a/apis/lb/v1alpha1/zz_monitorv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this MonitorV2 -func (mg *MonitorV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_monitor_v2" -} - -// GetConnectionDetailsMapping for this MonitorV2 -func (tr *MonitorV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this MonitorV2 -func (tr *MonitorV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this MonitorV2 -func (tr *MonitorV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this MonitorV2 -func (tr *MonitorV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this MonitorV2 -func (tr *MonitorV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this MonitorV2 -func (tr *MonitorV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this MonitorV2 -func (tr *MonitorV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this MonitorV2 -func (tr *MonitorV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this MonitorV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *MonitorV2) LateInitialize(attrs []byte) (bool, error) { - params := &MonitorV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *MonitorV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_monitorv2_types.go b/apis/lb/v1alpha1/zz_monitorv2_types.go deleted file mode 100755 index dd888e2..0000000 --- a/apis/lb/v1alpha1/zz_monitorv2_types.go +++ /dev/null @@ -1,274 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type MonitorV2InitParameters struct { - - // The administrative state of the monitor. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The time, in seconds, between sending probes to members. - Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` - - // The domain_name of the HTTP request during the health check. - DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` - - // Required for HTTP types. Expected HTTP codes - // for a passing HTTP monitor. You can either specify a single status like - // "200", or a list like "200,202". - ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` - - // Required for HTTP types. The HTTP method used - // for requests by the monitor. If this attribute is not specified, it - // defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - // TRACE, OPTIONS, CONNECT, and PATCH. - HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` - - // Number of permissible ping failures before - // changing the member's status to INACTIVE. Must be a number between 1 and 10. - MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` - - // Specifies the health check port. The port number - // ranges from 1 to 65535. The value is left blank by default, indicating that - // the port of the backend server is used as the health check port. - MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` - - // The Name of the Monitor. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this monitor will be assigned to. - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the monitor. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new monitor. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Maximum number of seconds for a monitor to wait for a - // ping reply before it times out. The value must be less than the delay value. - Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` - - // The type of probe, which is TCP, UDP_CONNECT, or HTTP, - // that is sent by the load balancer to verify the member state. Changing this - // creates a new monitor. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Required for HTTP types. URI path that will be - // accessed if monitor type is HTTP. - URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` -} - -type MonitorV2Observation struct { - - // The administrative state of the monitor. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The time, in seconds, between sending probes to members. - Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` - - // The domain_name of the HTTP request during the health check. - DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` - - // Required for HTTP types. Expected HTTP codes - // for a passing HTTP monitor. You can either specify a single status like - // "200", or a list like "200,202". - ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` - - // Required for HTTP types. The HTTP method used - // for requests by the monitor. If this attribute is not specified, it - // defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - // TRACE, OPTIONS, CONNECT, and PATCH. - HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` - - // The unique ID for the monitor. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Number of permissible ping failures before - // changing the member's status to INACTIVE. Must be a number between 1 and 10. - MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` - - // Specifies the health check port. The port number - // ranges from 1 to 65535. The value is left blank by default, indicating that - // the port of the backend server is used as the health check port. - MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` - - // The Name of the Monitor. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this monitor will be assigned to. - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the monitor. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new monitor. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Maximum number of seconds for a monitor to wait for a - // ping reply before it times out. The value must be less than the delay value. - Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` - - // The type of probe, which is TCP, UDP_CONNECT, or HTTP, - // that is sent by the load balancer to verify the member state. Changing this - // creates a new monitor. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Required for HTTP types. URI path that will be - // accessed if monitor type is HTTP. - URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` -} - -type MonitorV2Parameters struct { - - // The administrative state of the monitor. - // A valid value is true (UP) or false (DOWN). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // The time, in seconds, between sending probes to members. - // +kubebuilder:validation:Optional - Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` - - // The domain_name of the HTTP request during the health check. - // +kubebuilder:validation:Optional - DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` - - // Required for HTTP types. Expected HTTP codes - // for a passing HTTP monitor. You can either specify a single status like - // "200", or a list like "200,202". - // +kubebuilder:validation:Optional - ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` - - // Required for HTTP types. The HTTP method used - // for requests by the monitor. If this attribute is not specified, it - // defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - // TRACE, OPTIONS, CONNECT, and PATCH. - // +kubebuilder:validation:Optional - HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` - - // Number of permissible ping failures before - // changing the member's status to INACTIVE. Must be a number between 1 and 10. - // +kubebuilder:validation:Optional - MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` - - // Specifies the health check port. The port number - // ranges from 1 to 65535. The value is left blank by default, indicating that - // the port of the backend server is used as the health check port. - // +kubebuilder:validation:Optional - MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` - - // The Name of the Monitor. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The id of the pool that this monitor will be assigned to. - // +kubebuilder:validation:Optional - PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` - - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the monitor. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new monitor. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Maximum number of seconds for a monitor to wait for a - // ping reply before it times out. The value must be less than the delay value. - // +kubebuilder:validation:Optional - Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` - - // The type of probe, which is TCP, UDP_CONNECT, or HTTP, - // that is sent by the load balancer to verify the member state. Changing this - // creates a new monitor. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Required for HTTP types. URI path that will be - // accessed if monitor type is HTTP. - // +kubebuilder:validation:Optional - URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` -} - -// MonitorV2Spec defines the desired state of MonitorV2 -type MonitorV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider MonitorV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider MonitorV2InitParameters `json:"initProvider,omitempty"` -} - -// MonitorV2Status defines the observed state of MonitorV2. -type MonitorV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider MonitorV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// MonitorV2 is the Schema for the MonitorV2s API. Manages a ELB Monitor resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type MonitorV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.delay) || (has(self.initProvider) && has(self.initProvider.delay))",message="spec.forProvider.delay is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.maxRetries) || (has(self.initProvider) && has(self.initProvider.maxRetries))",message="spec.forProvider.maxRetries is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.poolId) || (has(self.initProvider) && has(self.initProvider.poolId))",message="spec.forProvider.poolId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.timeout) || (has(self.initProvider) && has(self.initProvider.timeout))",message="spec.forProvider.timeout is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" - Spec MonitorV2Spec `json:"spec"` - Status MonitorV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// MonitorV2List contains a list of MonitorV2s -type MonitorV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []MonitorV2 `json:"items"` -} - -// Repository type metadata. -var ( - MonitorV2_Kind = "MonitorV2" - MonitorV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MonitorV2_Kind}.String() - MonitorV2_KindAPIVersion = MonitorV2_Kind + "." + CRDGroupVersion.String() - MonitorV2_GroupVersionKind = CRDGroupVersion.WithKind(MonitorV2_Kind) -) - -func init() { - SchemeBuilder.Register(&MonitorV2{}, &MonitorV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_monitorv3_types.go b/apis/lb/v1alpha1/zz_monitorv3_types.go index f50afb5..63f4813 100755 --- a/apis/lb/v1alpha1/zz_monitorv3_types.go +++ b/apis/lb/v1alpha1/zz_monitorv3_types.go @@ -49,11 +49,29 @@ type MonitorV3InitParameters struct { // Specifies the ID of the backend server group for which the health check is configured. // Changing this creates a new monitor. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` + // Specifies the project ID. Changing this creates a new monitor. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the maximum time required for waiting for a response from the health check, in // seconds. Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` @@ -165,13 +183,31 @@ type MonitorV3Parameters struct { // Specifies the ID of the backend server group for which the health check is configured. // Changing this creates a new monitor. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 // +kubebuilder:validation:Optional PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` + // Specifies the project ID. Changing this creates a new monitor. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the maximum time required for waiting for a response from the health check, in // seconds. // +kubebuilder:validation:Optional @@ -224,7 +260,6 @@ type MonitorV3 struct { metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.delay) || (has(self.initProvider) && has(self.initProvider.delay))",message="spec.forProvider.delay is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.maxRetries) || (has(self.initProvider) && has(self.initProvider.maxRetries))",message="spec.forProvider.maxRetries is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.poolId) || (has(self.initProvider) && has(self.initProvider.poolId))",message="spec.forProvider.poolId is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.timeout) || (has(self.initProvider) && has(self.initProvider.timeout))",message="spec.forProvider.timeout is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" Spec MonitorV3Spec `json:"spec"` diff --git a/apis/lb/v1alpha1/zz_policyv3_types.go b/apis/lb/v1alpha1/zz_policyv3_types.go index 26e65f1..2a08771 100755 --- a/apis/lb/v1alpha1/zz_policyv3_types.go +++ b/apis/lb/v1alpha1/zz_policyv3_types.go @@ -72,8 +72,17 @@ type PolicyV3InitParameters struct { // The Listener on which the Policy will be associated with. // Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDRef *v1.Reference `json:"listenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDSelector *v1.Selector `json:"listenerIdSelector,omitempty" tf:"-"` + // Specifies the forwarding policy name. Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -91,16 +100,43 @@ type PolicyV3InitParameters struct { // Required for admins. The UUID of the tenant who owns // the Policy. Only administrative users can specify a tenant UUID other than // their own. Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Requests matching this policy will be redirected to the listener with this ID. // Only valid if action is REDIRECT_TO_LISTENER. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 RedirectListenerID *string `json:"redirectListenerId,omitempty" tf:"redirect_listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate redirectListenerId. + // +kubebuilder:validation:Optional + RedirectListenerIDRef *v1.Reference `json:"redirectListenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate redirectListenerId. + // +kubebuilder:validation:Optional + RedirectListenerIDSelector *v1.Selector `json:"redirectListenerIdSelector,omitempty" tf:"-"` + // Requests matching this policy will be redirected to the pool with this ID. // Only valid if action is REDIRECT_TO_POOL. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 RedirectPoolID *string `json:"redirectPoolId,omitempty" tf:"redirect_pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate redirectPoolId. + // +kubebuilder:validation:Optional + RedirectPoolIDRef *v1.Reference `json:"redirectPoolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate redirectPoolId. + // +kubebuilder:validation:Optional + RedirectPoolIDSelector *v1.Selector `json:"redirectPoolIdSelector,omitempty" tf:"-"` + // Specifies the configuration of the backend server group that the requests // are forwarded to. This parameter is valid only when action is set to REDIRECT_TO_POOL. RedirectPoolsConfig []RedirectPoolsConfigInitParameters `json:"redirectPoolsConfig,omitempty" tf:"redirect_pools_config,omitempty"` @@ -205,9 +241,18 @@ type PolicyV3Parameters struct { // The Listener on which the Policy will be associated with. // Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 // +kubebuilder:validation:Optional ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDRef *v1.Reference `json:"listenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDSelector *v1.Selector `json:"listenerIdSelector,omitempty" tf:"-"` + // Specifies the forwarding policy name. // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -228,19 +273,46 @@ type PolicyV3Parameters struct { // Required for admins. The UUID of the tenant who owns // the Policy. Only administrative users can specify a tenant UUID other than // their own. Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Requests matching this policy will be redirected to the listener with this ID. // Only valid if action is REDIRECT_TO_LISTENER. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 // +kubebuilder:validation:Optional RedirectListenerID *string `json:"redirectListenerId,omitempty" tf:"redirect_listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate redirectListenerId. + // +kubebuilder:validation:Optional + RedirectListenerIDRef *v1.Reference `json:"redirectListenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate redirectListenerId. + // +kubebuilder:validation:Optional + RedirectListenerIDSelector *v1.Selector `json:"redirectListenerIdSelector,omitempty" tf:"-"` + // Requests matching this policy will be redirected to the pool with this ID. // Only valid if action is REDIRECT_TO_POOL. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 // +kubebuilder:validation:Optional RedirectPoolID *string `json:"redirectPoolId,omitempty" tf:"redirect_pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate redirectPoolId. + // +kubebuilder:validation:Optional + RedirectPoolIDRef *v1.Reference `json:"redirectPoolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate redirectPoolId. + // +kubebuilder:validation:Optional + RedirectPoolIDSelector *v1.Selector `json:"redirectPoolIdSelector,omitempty" tf:"-"` + // Specifies the configuration of the backend server group that the requests // are forwarded to. This parameter is valid only when action is set to REDIRECT_TO_POOL. // +kubebuilder:validation:Optional @@ -264,8 +336,17 @@ type PolicyV3Parameters struct { type RedirectPoolsConfigInitParameters struct { // - Specifies the ID of the backend server group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` + // - Specifies the weight of the backend server group. The value ranges from 0 to 100. Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` } @@ -282,8 +363,17 @@ type RedirectPoolsConfigObservation struct { type RedirectPoolsConfigParameters struct { // - Specifies the ID of the backend server group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PoolV3 + // +kubebuilder:validation:Optional + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Reference to a PoolV3 in lb to populate poolId. + // +kubebuilder:validation:Optional + PoolIDRef *v1.Reference `json:"poolIdRef,omitempty" tf:"-"` + + // Selector for a PoolV3 in lb to populate poolId. // +kubebuilder:validation:Optional - PoolID *string `json:"poolId" tf:"pool_id,omitempty"` + PoolIDSelector *v1.Selector `json:"poolIdSelector,omitempty" tf:"-"` // - Specifies the weight of the backend server group. The value ranges from 0 to 100. // +kubebuilder:validation:Optional @@ -471,7 +561,6 @@ type PolicyV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.action) || (has(self.initProvider) && has(self.initProvider.action))",message="spec.forProvider.action is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.listenerId) || (has(self.initProvider) && has(self.initProvider.listenerId))",message="spec.forProvider.listenerId is a required parameter" Spec PolicyV3Spec `json:"spec"` Status PolicyV3Status `json:"status,omitempty"` } diff --git a/apis/lb/v1alpha1/zz_poolv2_terraformed.go b/apis/lb/v1alpha1/zz_poolv2_terraformed.go deleted file mode 100755 index 2f79ee7..0000000 --- a/apis/lb/v1alpha1/zz_poolv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this PoolV2 -func (mg *PoolV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_pool_v2" -} - -// GetConnectionDetailsMapping for this PoolV2 -func (tr *PoolV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this PoolV2 -func (tr *PoolV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this PoolV2 -func (tr *PoolV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this PoolV2 -func (tr *PoolV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this PoolV2 -func (tr *PoolV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this PoolV2 -func (tr *PoolV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this PoolV2 -func (tr *PoolV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this PoolV2 -func (tr *PoolV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this PoolV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *PoolV2) LateInitialize(attrs []byte) (bool, error) { - params := &PoolV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *PoolV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_poolv2_types.go b/apis/lb/v1alpha1/zz_poolv2_types.go deleted file mode 100755 index 3423bef..0000000 --- a/apis/lb/v1alpha1/zz_poolv2_types.go +++ /dev/null @@ -1,251 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type PersistenceInitParameters struct { - - // The name of the cookie if persistence mode is set - // appropriately. - CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` - - // The type of persistence mode. The current specification - // supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type PersistenceObservation struct { - - // The name of the cookie if persistence mode is set - // appropriately. - CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` - - // The type of persistence mode. The current specification - // supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type PersistenceParameters struct { - - // The name of the cookie if persistence mode is set - // appropriately. - // +kubebuilder:validation:Optional - CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` - - // The type of persistence mode. The current specification - // supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` -} - -type PoolV2InitParameters struct { - - // The administrative state of the pool. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the pool. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The load balancing algorithm to - // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - LBMethod *string `json:"lbMethod,omitempty" tf:"lb_method,omitempty"` - - // The Listener on which the members of the pool - // will be associated with. Changing this creates a new pool. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // The load balancer on which to provision this - // pool. Changing this creates a new pool. - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the pool. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // Omit this field to prevent session persistence. Indicates - // whether connections in the same session will be processed by the same Pool - // member or not. Changing this creates a new pool. - Persistence []PersistenceInitParameters `json:"persistence,omitempty" tf:"persistence,omitempty"` - - // The protocol - can either be TCP, UDP or HTTP. - // Changing this creates a new pool. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the pool. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new pool. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -type PoolV2Observation struct { - - // The administrative state of the pool. - // A valid value is true (UP) or false (DOWN). - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the pool. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The unique ID for the pool. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The load balancing algorithm to - // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - LBMethod *string `json:"lbMethod,omitempty" tf:"lb_method,omitempty"` - - // The Listener on which the members of the pool - // will be associated with. Changing this creates a new pool. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // The load balancer on which to provision this - // pool. Changing this creates a new pool. - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the pool. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // Omit this field to prevent session persistence. Indicates - // whether connections in the same session will be processed by the same Pool - // member or not. Changing this creates a new pool. - Persistence []PersistenceObservation `json:"persistence,omitempty" tf:"persistence,omitempty"` - - // The protocol - can either be TCP, UDP or HTTP. - // Changing this creates a new pool. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the pool. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new pool. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -type PoolV2Parameters struct { - - // The administrative state of the pool. - // A valid value is true (UP) or false (DOWN). - // +kubebuilder:validation:Optional - AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` - - // Human-readable description for the pool. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // The load balancing algorithm to - // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - // +kubebuilder:validation:Optional - LBMethod *string `json:"lbMethod,omitempty" tf:"lb_method,omitempty"` - - // The Listener on which the members of the pool - // will be associated with. Changing this creates a new pool. - // +kubebuilder:validation:Optional - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // The load balancer on which to provision this - // pool. Changing this creates a new pool. - // +kubebuilder:validation:Optional - LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` - - // Human-readable name for the pool. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // Omit this field to prevent session persistence. Indicates - // whether connections in the same session will be processed by the same Pool - // member or not. Changing this creates a new pool. - // +kubebuilder:validation:Optional - Persistence []PersistenceParameters `json:"persistence,omitempty" tf:"persistence,omitempty"` - - // The protocol - can either be TCP, UDP or HTTP. - // Changing this creates a new pool. - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the pool. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new pool. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` -} - -// PoolV2Spec defines the desired state of PoolV2 -type PoolV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider PoolV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider PoolV2InitParameters `json:"initProvider,omitempty"` -} - -// PoolV2Status defines the observed state of PoolV2. -type PoolV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider PoolV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// PoolV2 is the Schema for the PoolV2s API. Manages a ELB Pool resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type PoolV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.lbMethod) || (has(self.initProvider) && has(self.initProvider.lbMethod))",message="spec.forProvider.lbMethod is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" - Spec PoolV2Spec `json:"spec"` - Status PoolV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// PoolV2List contains a list of PoolV2s -type PoolV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []PoolV2 `json:"items"` -} - -// Repository type metadata. -var ( - PoolV2_Kind = "PoolV2" - PoolV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PoolV2_Kind}.String() - PoolV2_KindAPIVersion = PoolV2_Kind + "." + CRDGroupVersion.String() - PoolV2_GroupVersionKind = CRDGroupVersion.WithKind(PoolV2_Kind) -) - -func init() { - SchemeBuilder.Register(&PoolV2{}, &PoolV2List{}) -} diff --git a/apis/lb/v1alpha1/zz_poolv3_types.go b/apis/lb/v1alpha1/zz_poolv3_types.go index e93c34f..3ef4592 100755 --- a/apis/lb/v1alpha1/zz_poolv3_types.go +++ b/apis/lb/v1alpha1/zz_poolv3_types.go @@ -22,11 +22,29 @@ type PoolV3InitParameters struct { LBAlgorithm *string `json:"lbAlgorithm,omitempty" tf:"lb_algorithm,omitempty"` // Specifies the ID of the listener associated with the backend server group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDRef *v1.Reference `json:"listenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDSelector *v1.Selector `json:"listenerIdSelector,omitempty" tf:"-"` + // Specifies the ID of the associated load balancer. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.LoadbalancerV3 LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + // Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDRef *v1.Reference `json:"loadbalancerIdRef,omitempty" tf:"-"` + + // Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDSelector *v1.Selector `json:"loadbalancerIdSelector,omitempty" tf:"-"` + // Specifies whether to enable removal protection for the pool members. // true: Enable removal protection. // false (default): Disable removal protection. @@ -36,8 +54,17 @@ type PoolV3InitParameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the project ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the protocol used by the backend server group to receive requests. // TCP, UDP, HTTP, HTTPS, and QUIC are supported. Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` @@ -49,7 +76,16 @@ type PoolV3InitParameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` // Specifies the ID of the VPC where the backend server group works. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.VpcV1 VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Reference to a VpcV1 in vpc to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + + // Selector for a VpcV1 in vpc to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } type PoolV3Observation struct { @@ -108,13 +144,31 @@ type PoolV3Parameters struct { LBAlgorithm *string `json:"lbAlgorithm,omitempty" tf:"lb_algorithm,omitempty"` // Specifies the ID of the listener associated with the backend server group. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.ListenerV3 // +kubebuilder:validation:Optional ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + // Reference to a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDRef *v1.Reference `json:"listenerIdRef,omitempty" tf:"-"` + + // Selector for a ListenerV3 in lb to populate listenerId. + // +kubebuilder:validation:Optional + ListenerIDSelector *v1.Selector `json:"listenerIdSelector,omitempty" tf:"-"` + // Specifies the ID of the associated load balancer. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.LoadbalancerV3 // +kubebuilder:validation:Optional LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + // Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDRef *v1.Reference `json:"loadbalancerIdRef,omitempty" tf:"-"` + + // Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + // +kubebuilder:validation:Optional + LoadbalancerIDSelector *v1.Selector `json:"loadbalancerIdSelector,omitempty" tf:"-"` + // Specifies whether to enable removal protection for the pool members. // true: Enable removal protection. // false (default): Disable removal protection. @@ -126,9 +180,18 @@ type PoolV3Parameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // Specifies the project ID. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the protocol used by the backend server group to receive requests. // TCP, UDP, HTTP, HTTPS, and QUIC are supported. // +kubebuilder:validation:Optional @@ -143,8 +206,17 @@ type PoolV3Parameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` // Specifies the ID of the VPC where the backend server group works. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1.VpcV1 // +kubebuilder:validation:Optional VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Reference to a VpcV1 in vpc to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + + // Selector for a VpcV1 in vpc to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } type SessionPersistenceInitParameters struct { diff --git a/apis/lb/v1alpha1/zz_rulev3_types.go b/apis/lb/v1alpha1/zz_rulev3_types.go index 3bbc6c9..187a179 100755 --- a/apis/lb/v1alpha1/zz_rulev3_types.go +++ b/apis/lb/v1alpha1/zz_rulev3_types.go @@ -57,13 +57,31 @@ type RuleV3InitParameters struct { Conditions []ConditionsInitParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` // ID of the policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PolicyV3 PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + // Reference to a PolicyV3 in lb to populate policyId. + // +kubebuilder:validation:Optional + PolicyIDRef *v1.Reference `json:"policyIdRef,omitempty" tf:"-"` + + // Selector for a PolicyV3 in lb to populate policyId. + // +kubebuilder:validation:Optional + PolicyIDSelector *v1.Selector `json:"policyIdSelector,omitempty" tf:"-"` + // Required for admins. The UUID of the tenant who owns // the Policy. Only administrative users can specify a tenant UUID other than // their own. Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -118,15 +136,33 @@ type RuleV3Parameters struct { Conditions []ConditionsParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` // ID of the policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1.PolicyV3 // +kubebuilder:validation:Optional PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + // Reference to a PolicyV3 in lb to populate policyId. + // +kubebuilder:validation:Optional + PolicyIDRef *v1.Reference `json:"policyIdRef,omitempty" tf:"-"` + + // Selector for a PolicyV3 in lb to populate policyId. + // +kubebuilder:validation:Optional + PolicyIDSelector *v1.Selector `json:"policyIdSelector,omitempty" tf:"-"` + // Required for admins. The UUID of the tenant who owns // the Policy. Only administrative users can specify a tenant UUID other than // their own. Changing this creates a new Policy. + // +crossplane:generate:reference:type=github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1.ProjectV3 // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 in identity to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -174,7 +210,6 @@ type RuleV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.compareType) || (has(self.initProvider) && has(self.initProvider.compareType))",message="spec.forProvider.compareType is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.policyId) || (has(self.initProvider) && has(self.initProvider.policyId))",message="spec.forProvider.policyId is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.value) || (has(self.initProvider) && has(self.initProvider.value))",message="spec.forProvider.value is a required parameter" Spec RuleV3Spec `json:"spec"` diff --git a/apis/lb/v1alpha1/zz_whitelistv2_terraformed.go b/apis/lb/v1alpha1/zz_whitelistv2_terraformed.go deleted file mode 100755 index 25c5c9a..0000000 --- a/apis/lb/v1alpha1/zz_whitelistv2_terraformed.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "dario.cat/mergo" - "github.com/pkg/errors" - - "github.com/crossplane/upjet/pkg/resource" - "github.com/crossplane/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this WhitelistV2 -func (mg *WhitelistV2) GetTerraformResourceType() string { - return "opentelekomcloud_lb_whitelist_v2" -} - -// GetConnectionDetailsMapping for this WhitelistV2 -func (tr *WhitelistV2) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this WhitelistV2 -func (tr *WhitelistV2) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this WhitelistV2 -func (tr *WhitelistV2) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this WhitelistV2 -func (tr *WhitelistV2) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this WhitelistV2 -func (tr *WhitelistV2) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this WhitelistV2 -func (tr *WhitelistV2) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// GetInitParameters of this WhitelistV2 -func (tr *WhitelistV2) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// GetInitParameters of this WhitelistV2 -func (tr *WhitelistV2) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { - params, err := tr.GetParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) - } - if !shouldMergeInitProvider { - return params, nil - } - - initParams, err := tr.GetInitParameters() - if err != nil { - return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) - } - - // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the - // slices from the initProvider to forProvider. As it also sets - // overwrite to true, we need to set it back to false, we don't - // want to overwrite the forProvider fields with the initProvider - // fields. - err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { - c.Overwrite = false - }) - if err != nil { - return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) - } - - return params, nil -} - -// LateInitialize this WhitelistV2 using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *WhitelistV2) LateInitialize(attrs []byte) (bool, error) { - params := &WhitelistV2Parameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *WhitelistV2) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/lb/v1alpha1/zz_whitelistv2_types.go b/apis/lb/v1alpha1/zz_whitelistv2_types.go deleted file mode 100755 index 2417b36..0000000 --- a/apis/lb/v1alpha1/zz_whitelistv2_types.go +++ /dev/null @@ -1,137 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type WhitelistV2InitParameters struct { - - // Specify whether to enable access control. - EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` - - // The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the whitelist. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new whitelist. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies the IP addresses in the whitelist. Use commas(,) to separate - // the multiple IP addresses. - Whitelist *string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` -} - -type WhitelistV2Observation struct { - - // Specify whether to enable access control. - EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` - - // The unique ID for the whitelist. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist. - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the whitelist. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new whitelist. - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies the IP addresses in the whitelist. Use commas(,) to separate - // the multiple IP addresses. - Whitelist *string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` -} - -type WhitelistV2Parameters struct { - - // Specify whether to enable access control. - // +kubebuilder:validation:Optional - EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` - - // The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist. - // +kubebuilder:validation:Optional - ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` - - // Required for admins. The UUID of the tenant who owns - // the whitelist. Only administrative users can specify a tenant UUID - // other than their own. Changing this creates a new whitelist. - // +kubebuilder:validation:Optional - TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` - - // Specifies the IP addresses in the whitelist. Use commas(,) to separate - // the multiple IP addresses. - // +kubebuilder:validation:Optional - Whitelist *string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` -} - -// WhitelistV2Spec defines the desired state of WhitelistV2 -type WhitelistV2Spec struct { - v1.ResourceSpec `json:",inline"` - ForProvider WhitelistV2Parameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider WhitelistV2InitParameters `json:"initProvider,omitempty"` -} - -// WhitelistV2Status defines the observed state of WhitelistV2. -type WhitelistV2Status struct { - v1.ResourceStatus `json:",inline"` - AtProvider WhitelistV2Observation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// WhitelistV2 is the Schema for the WhitelistV2s API. Manages a ELB Whitelist resource within OpenTelekomCloud. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} -type WhitelistV2 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.listenerId) || (has(self.initProvider) && has(self.initProvider.listenerId))",message="spec.forProvider.listenerId is a required parameter" - Spec WhitelistV2Spec `json:"spec"` - Status WhitelistV2Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// WhitelistV2List contains a list of WhitelistV2s -type WhitelistV2List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []WhitelistV2 `json:"items"` -} - -// Repository type metadata. -var ( - WhitelistV2_Kind = "WhitelistV2" - WhitelistV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: WhitelistV2_Kind}.String() - WhitelistV2_KindAPIVersion = WhitelistV2_Kind + "." + CRDGroupVersion.String() - WhitelistV2_GroupVersionKind = CRDGroupVersion.WithKind(WhitelistV2_Kind) -) - -func init() { - SchemeBuilder.Register(&WhitelistV2{}, &WhitelistV2List{}) -} diff --git a/config/external_name.go b/config/external_name.go index 2cfd33c..5f09526 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -98,25 +98,16 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "opentelekomcloud_kms_grant_v1": config.IdentifierFromProvider, // LB - "opentelekomcloud_lb_certificate_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_certificate_v3": config.IdentifierFromProvider, "opentelekomcloud_lb_ipgroup_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_l7policy_v2": config.IdentifierFromProvider, - "opentelekomcloud_lb_l7rule_v2": config.IdentifierFromProvider, - "opentelekomcloud_lb_loadbalancer_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_loadbalancer_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_listener_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_listener_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_member_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_member_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_monitor_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_monitor_v3": config.IdentifierFromProvider, "opentelekomcloud_lb_policy_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_pool_v2": config.IdentifierFromProvider, "opentelekomcloud_lb_pool_v3": config.IdentifierFromProvider, "opentelekomcloud_lb_rule_v3": config.IdentifierFromProvider, "opentelekomcloud_lb_security_policy_v3": config.IdentifierFromProvider, - "opentelekomcloud_lb_whitelist_v2": config.IdentifierFromProvider, // LTS "opentelekomcloud_logtank_group_v2": config.IdentifierFromProvider, diff --git a/config/lb/config.go b/config/lb/config.go index ca56db3..bb6e8be 100644 --- a/config/lb/config.go +++ b/config/lb/config.go @@ -1,8 +1,126 @@ package lb -import "github.com/crossplane/upjet/pkg/config" +import ( + "github.com/crossplane/upjet/pkg/config" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/common" +) // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { - // Nothing for now + p.AddResourceConfigurator("opentelekomcloud_lb_loadbalancer_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["router_id"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_v1", + } + r.References["network_ids"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_subnet_v1", + Extractor: common.NetworkIDExtractor, + } + r.References["subnet_id"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_subnet_v1", + } + r.References["public_ip.id"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_eip_v1", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_listener_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["loadbalancer_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_loadbalancer_v3", + } + r.References["default_tls_container_ref"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_certificate_v3", + } + r.References["default_pool_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_pool_v3", + } + r.References["ip_group.id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_ipgroup_v3", + } + r.References["security_policy_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_security_policy_v3", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_pool_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + r.References["listener_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_listener_v3", + } + r.References["loadbalancer_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_loadbalancer_v3", + } + r.References["vpc_id"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_v1", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_member_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + r.References["pool_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_pool_v3", + } + r.References["subnet_id"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_subnet_v1", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_ipgroup_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + r.References["ip_list.ip"] = config.Reference{ + TerraformName: "opentelekomcloud_vpc_eip_v1", + Extractor: common.EipAddressExtractor, + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_monitor_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["pool_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_pool_v3", + } + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_policy_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + r.References["listener_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_listener_v3", + } + r.References["redirect_listener_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_listener_v3", + } + r.References["redirect_pool_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_pool_v3", + } + r.References["redirect_pools_config.pool_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_pool_v3", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_rule_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["policy_id"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_policy_v3", + } + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + }) + p.AddResourceConfigurator("opentelekomcloud_lb_security_policy_v3", func(r *config.Resource) { + r.UseAsync = true + r.References["project_id"] = config.Reference{ + TerraformName: "opentelekomcloud_identity_project_v3", + } + r.References["listener_ids"] = config.Reference{ + TerraformName: "opentelekomcloud_lb_listener_v3", + } + }) } diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index f342c38..0a61d90 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -1984,6 +1984,36 @@ resources: tags: '- See Argument Reference above.' vpc_id: '- (Required) The VPC ID. Changing this creates a new group.' importStatements: [] + opentelekomcloud_as_lifecycle_hook_v1: + subCategory: Autoscaling + description: Manages an AS Lifecycle Hook v1 resource within OpenTelekomCloud. + name: opentelekomcloud_as_lifecycle_hook_v1 + title: opentelekomcloud_as_lifecycle_hook_v1 + examples: + - name: hth_aslifecyclehook + manifest: |- + { + "default_result": "ABANDON", + "default_timeout": 3600, + "notification_metadata": "Some customized notification", + "notification_topic_urn": "urn:smn:regionId:b53e5554fad0494d96206fb84296510b:gsh", + "scaling_group_id": "4579f2f5-cbe8-425a-8f32-53dcb9d9053a", + "scaling_lifecycle_hook_name": "hth_aslifecyclehook", + "scaling_lifecycle_hook_type": "INSTANCE_TERMINATING" + } + argumentDocs: + create_time: '- (String) Time of creation of the autoscaling lifecycle hook.' + default_result: |- + - (Optional, String) The default lifecycle hook callback operation. This operation is performed when the timeout duration expires. The values + can be ABANDON (default value), and CONTINUE. + default_timeout: '- (Optional, Integer) the lifecycle hook timeout duration, which ranges from 60 to 86400 seconds. The default value is 3600.' + notification_metadata: '- (Optional, String) A customized notification, which contains no more than 256 characters. The message cannot contain the following characters: <>&''(){}.' + notification_topic_name: '- (String) Name of the associated topic in SMN..' + notification_topic_urn: '- (Required, String) The URN of an SMN topic. This parameter specifies a notification object for a lifecycle hook. When an instance is suspended by the lifecycle hook, the SMN service sends a notification to the object. This notification contains the basic instance information, your customized notification content, and the token for controlling lifecycle operations.' + scaling_group_id: '- (Required, String, ForceNew) The AS group ID. Changing this creates a new AS lifecycle hook.' + scaling_lifecycle_hook_name: '- (Required, String, ForceNew) The name of the AS Lifecycle Hook. The name can contain letters, digits, underscores(_), and hyphens(-),and cannot exceed 32 characters.' + scaling_lifecycle_hook_type: '- (Required, String) The lifecycle hook type. The values can be INSTANCE_TERMINATING, and INSTANCE_LAUNCHING.' + importStatements: [] opentelekomcloud_as_policy_v1: subCategory: Autoscaling description: Manages a AS Policy v1 resource within OpenTelekomCloud. @@ -3013,6 +3043,11 @@ resources: - Private key of the client certificate issued by the X509 CA certificate configured in authenticating_proxy mode. This key is used for authentication from kube-apiserver to the extended API server. security_group_control: '- ID of the autogenerated security group for the CCE master port.' + security_group_id: |- + - (Optional) Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + Otherwise, the system will automatically create a default worker node security group for you. + The default worker node security group needs to allow access from certain ports to ensure normal communications. + Changing this parameter will create a new cluster resource. security_group_node: '- ID of the autogenerated security group for the CCE nodes.' status: '- Cluster status information.' subnet_id: '- (Required) The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource.' @@ -3155,6 +3190,10 @@ resources: containerd - Containerd scale_down_cooldown_time: '- (Optional, Int) Interval between two scaling operations, in minutes.' scale_enable: '- (Optional, Bool) Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature.' + security_group_ids: |- + - (Optional, List, ForceNew) Specifies the list of custom security group IDs for the node pool. + If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + the rules of the port on which CCE running depends. server_group_reference: '- (Optional, String, ForceNew) ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group.' size: '- (Required, Int, ForceNew) Disk size in GB.' status: '- Node status information.' @@ -6200,6 +6239,157 @@ resources: writable_partition_count: '- Total number of writable partitions (including partitions in ACTIVE state only).' importStatements: - terraform import opentelekomcloud_dis_stream_v2.stream_1 my_stream + opentelekomcloud_dms_dedicated_instance_v2: + subCategory: Distributed Message Service (DMS) + description: Manages an up-to-date DMS Instance v2 resource within OpenTelekomCloud. + name: opentelekomcloud_dms_dedicated_instance_v2 + title: opentelekomcloud_dms_dedicated_instance_v2 + examples: + - name: test + manifest: |- + { + "access_user": "user", + "available_zones": [ + "${data.opentelekomcloud_dms_az_v1.az_1.id}" + ], + "broker_num": 3, + "engine_version": "2.7", + "flavor_id": "${data.opentelekomcloud_dms_flavor_v2.test.flavor_id}", + "name": "kafka_test", + "network_id": "${var.subnet_id}", + "password": "${var.access_password}", + "security_group_id": "${var.security_group_id}", + "ssl_enable": true, + "storage_space": 600, + "storage_spec_code": "${data.opentelekomcloud_dms_flavor_v2.test.flavors[0].ios[0].storage_spec_code}", + "vpc_id": "${var.vpc_id}" + } + references: + flavor_id: data.opentelekomcloud_dms_flavor_v2.test.flavor_id + network_id: var.subnet_id + password: var.access_password + security_group_id: var.security_group_id + storage_spec_code: data.opentelekomcloud_dms_flavor_v2.test.flavors[0].ios[0].storage_spec_code + vpc_id: var.vpc_id + - name: instance_1 + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "password", + "used_storage_space", + "cross_vpc_accesses", + "publicip_id" + ] + } + ] + } + argumentDocs: + "300": to 300,000 GB + access_user: |- + - (Optional, String, ForceNew) Specifies the username of SASL_SSL user. A username consists of 4 + to 64 characters and supports only letters, digits, and hyphens (-). Changing this creates a new instance resource. + arch_type: |- + - (Optional, String, ForceNew) Specifies the CPU architecture. Valid value is X86. + Changing this creates a new instance resource. + available_zones: |- + - (Optional, List, ForceNew) Indicates the ID of an AZ. The parameter value can not be + left blank or an empty array. For details, see section + Querying AZ Information. + broker_num: '- (Required, Int) Specifies the broker numbers.' + cert_replaced: '- Indicates whether the certificate can be replaced.' + connect_address: '- Indicates the IP address of the DMS Kafka instance.' + connector_node_num: '- Indicates the number of connector node.' + create: '- Default is 50 minutes.' + created_at: '- Indicates the create time.' + cross_vpc_accesses: |- + - (Optional, List) Specifies the cross-VPC access information. + The object structure is documented below. + cross_vpc_accesses.advertised_ip: '- (Optional, String) The advertised IP Address or domain name.' + cross_vpc_accesses.listener_ip: '- The listener IP address.' + cross_vpc_accesses.port: '- The port number.' + cross_vpc_accesses.port_id: '- The port ID associated with the address.' + delete: '- Default is 15 minutes.' + description: |- + - (Optional, String) Specifies the description of the DMS Kafka instance. It is a character string + containing not more than 1,024 characters. + disk_encrypted_enable: '- (Optional, Bool, ForceNew) Indicates whether to enable disk encryption.' + disk_encrypted_key: '- (Optional, String, ForceNew) Disk encryption key. If disk encryption is not enabled, this parameter is left blank.' + dumping: '- Whether message dumping(smart connect) is enabled.' + enable_publicip: '- (Optional, Bool, ForceNew) Whether to enable public access. By default, public access is disabled.' + enabled_mechanisms: |- + - (Optional, List, ForceNew) Specifies the authentication mechanisms to use after SASL is + enabled. Value options: + engine: '- Indicates the message engine.' + engine_version: |- + - (Required, String, ForceNew) Specifies the version of the Kafka engine, + such as 1.1.0, 2.3.0, 2.7 or other supported versions. Changing this creates a new instance resource. + flavor_id: |- + - (Optional, String) Specifies the Kafka [flavor ID](https://docs.otc.t-systems.com/distributed-message-service/api-ref/apis_v2_recommended/other_apis/querying_product_specifications_list.html#listengineproducts, + e.g. c6.2u4g.cluster. This parameter and product_id are alternative. + id: '- Specifies a resource ID in UUID format.' + ipv6_enable: |- + - (Optional, Bool, ForceNew) Specifies whether to enable IPv6. Defaults to false. + Changing this creates a new instance resource. + maintain_begin: |- + - (Optional, String) Specifies the time at which a maintenance time window starts. Format: HH:mm. The + start time and end time of a maintenance time window must indicate the time segment of a supported maintenance time + window. The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. Parameters maintain_begin + and maintain_end must be set in pairs. If parameter maintain_begin is left blank, parameter maintain_end is also + blank. In this case, the system automatically allocates the default start time 02:00. + maintain_end: |- + - (Optional, String) Specifies the time at which a maintenance time window ends. Format: HH:mm. The + start time and end time of a maintenance time window must indicate the time segment of a supported maintenance time + window. The end time is four hours later than the start time. For example, if the start time is 22:00, the end time is + 02:00. Parameters maintain_begin + and maintain_end must be set in pairs. If parameter maintain_end is left blank, parameter + maintain_begin is also blank. In this case, the system automatically allocates the default end time 06:00. + name: |- + - (Required, String) Specifies the name of the DMS Kafka instance. An instance name starts with a letter, + consists of 4 to 64 characters, and supports only letters, digits, hyphens (-) and underscores (_). + network_id: |- + - (Required, String, ForceNew) Specifies the ID of a subnet. Changing this creates a new instance + resource. + new_tenant_ips: '- (Optional, List) Specifies the IPv4 private IP addresses for the new brokers.' + node_num: '- Indicates the node quantity.' + partition_num: '- Indicates the number of partitions in Kafka instance.' + password: |- + - (Optional, String) Specifies the password of SASL_SSL user. A password must meet the following + complexity requirements: Must be 8 to 32 characters long. Must contain at least 2 of the following character types: + lowercase letters, uppercase letters, digits, and special characters (`~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + pod_connect_address: '- Indicates the connection address on the tenant side.' + port: '- Indicates the port number of the DMS Kafka instance.' + public_bandwidth: '- Indicates the public network access bandwidth.' + public_ip_address: '- Indicates the public IP addresses list of the instance.' + region: '- The region in which DMS Kafka instance is created.' + resource_spec_code: '- Indicates a resource specifications identifier.' + retention_policy: |- + - (Optional, String) Specifies the action to be taken when the memory usage reaches the disk + capacity threshold. The valid values are as follows: + security_group_id: '- (Required, String) Specifies the ID of a security group.' + security_protocol: '- (Optional, String, ForceNew) Specifies the protocol to use after SASL is enabled. Value options:' + ssl_enable: |- + - (Optional, Bool, ForceNew) Specifies whether the Kafka SASL_SSL is enabled. + Changing this creates a new resource. + ssl_two_way_enable: '- Indicates whether to enable two-way authentication.' + status: '- Indicates the status of the DMS Kafka instance.' + storage_resource_id: '- Indicates the storage resource ID.' + storage_space: |- + - (Required, Int) Specifies the message storage capacity, the unit is GB. + The storage spaces corresponding to the product IDs are as follows: + storage_spec_code: |- + - (Required, String, ForceNew) Specifies the storage I/O specification. + The valid values are as follows: + storage_type: '- Indicates the storage type.' + tags: '- (Optional, Map) The key/value pairs to associate with the DMS Kafka instance.' + type: '- Indicates the DMS Kafka instance type.' + update: '- Default is 50 minutes.' + used_storage_space: '- Indicates the used message storage space. Unit: GB' + user_id: '- Indicates the ID of the user who created the DMS Kafka instance' + user_name: '- Indicates the name of the user who created the DMS Kafka instance' + vpc_id: '- (Required, String, ForceNew) Specifies the ID of a VPC. Changing this creates a new instance resource.' + importStatements: [] opentelekomcloud_dms_instance_v1: subCategory: Distributed Message Service (DMS) description: Manages a DMS Instance v1 resource within OpenTelekomCloud. @@ -6475,6 +6665,232 @@ resources: user_name: "-\tIndicates a username." vpc_id: '- (Required) Indicates the ID of a VPC (OpenStack router ID).' importStatements: [] + opentelekomcloud_dms_smart_connect_task_v2: + subCategory: Distributed Message Service (DMS) + description: Manages an up-to-date DMS Smart Connect Task v2 resource within OpenTelekomCloud. + name: opentelekomcloud_dms_smart_connect_task_v2 + title: opentelekomcloud_dms_smart_connect_task_v2 + examples: + - name: test + manifest: |- + { + "destination_task": [ + { + "access_key": "${var.access_key}", + "consumer_strategy": "latest", + "deliver_time_interval": 300, + "destination_file_type": "TEXT", + "obs_bucket_name": "${var.obs_bucket_name}", + "obs_path": "${var.obs_path}", + "partition_format": "yyyy/MM/dd/HH/mm", + "record_delimiter": "\n", + "secret_key": "${var.secret_key}" + } + ], + "destination_type": "OBS_SINK", + "instance_id": "${var.instance_id}", + "task_name": "${var.task_name}", + "topics": "${var.topics}" + } + references: + destination_task.access_key: var.access_key + destination_task.obs_bucket_name: var.obs_bucket_name + destination_task.obs_path: var.obs_path + destination_task.secret_key: var.secret_key + instance_id: var.instance_id + task_name: var.task_name + topics: var.topics + - name: test + manifest: |- + { + "instance_id": "${var.instance_id}", + "source_task": [ + { + "compression_type": "none", + "consumer_strategy": "latest", + "direction": "push", + "peer_instance_id": "${var.peer_instance_id}", + "provenance_header_enabled": false, + "rename_topic_enabled": false, + "replication_factor": 3, + "sync_consumer_offsets_enabled": false, + "task_num": 2, + "topics_mapping": [ + "topic-test:topic-test-mapping" + ] + } + ], + "source_type": "KAFKA_REPLICATOR_SOURCE", + "task_name": "${var.task_name}", + "topics": [ + "topic-test" + ] + } + references: + instance_id: var.instance_id + source_task.peer_instance_id: var.peer_instance_id + task_name: var.task_name + - name: test + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "${destination_task.0.access_key}", + "${destination_task.0.secret_key}", + "${source_task.0.password}" + ] + } + ] + } + argumentDocs: + create: '- Default is 30 minutes.' + created_at: '- Indicates the creation time of the smart connect task.' + destination_task: |- + - (Optional, List, ForceNew) Specifies the destination configuration of a smart connect task. + The destination_task structure is documented below. + Changing this parameter will create a new resource. + destination_task.access_key: |- + - (Optional, String, ForceNew) Specifies the access key used to access the OBS bucket. + It's required when destination_type is OBS_SINK. + Changing this parameter will create a new resource. + destination_task.consumer_strategy: |- + - (Optional, String, ForceNew) Specifies the consumer strategy of the smart connect task. + Value options: + destination_task.deliver_time_interval: |- + - (Optional, Int, ForceNew) Specifies the deliver time interval of the smart connect task. + It's required when destination_type is OBS_SINK. + The value should be between 30 and 900. Changing this parameter will create a new resource. + destination_task.destination_file_type: |- + - (Optional, String, ForceNew) Specifies the destination file type of the smart connect task. + Only TEXT is supported. Changing this parameter will create a new resource. + destination_task.destination_type: |- + is OBS_SINK. + Changing this parameter will create a new resource. + destination_task.obs_bucket_name: |- + - (Optional, String, ForceNew) Specifies the obs bucket name of the smart connect task. + It's required when destination_type is OBS_SINK. + Changing this parameter will create a new resource. + destination_task.obs_path: |- + - (Optional, String, ForceNew) Specifies the obs path of the smart connect task. + Obs path is separated by a slash. Changing this parameter will create a new resource. + destination_task.partition_format: |- + - (Optional, String, ForceNew) Specifies the time directory format of the smart connect task. + Value options: yyyy, yyyy/MM, yyyy/MM/dd, yyyy/MM/dd/HH, yyyy/MM/dd/HH/mm. + It's required when destination_type is OBS_SINK. + Changing this parameter will create a new resource. + destination_task.record_delimiter: |- + - (Optional, String, ForceNew) Specifies the record delimiter of the smart connect task. + Value options: ,, ;, |, \n. + Changing this parameter will create a new resource. + destination_task.secret_key: |- + - (Optional, String, ForceNew) Specifies the secret access key used to access the OBS bucket. + It's required when destination_type is OBS_SINK. + Changing this parameter will create a new resource. + destination_task.store_keys: |- + - (Optional, Bool, ForceNew) Specifies whether to dump keys. + Changing this parameter will create a new resource. + destination_type: |- + - (Optional, String, ForceNew) Specifies the destination type of the smart connect task. + Valid values are OBS_SINK and NONE. Changing this parameter will create a new resource. + id: '- The resource ID.' + instance_id: |- + - (Required, String, ForceNew) Specifies the kafka instance ID. + Changing this parameter will create a new resource. + region: '- The region in which the resource is created.' + source_task: |- + - (Optional, List, ForceNew) Specifies the source configuration of a smart connect task. + The source_task structure is documented below. + Changing this parameter will create a new resource. + source_task.compression_type: |- + - (Optional, String, ForceNew) Specifies the compression algorithm to use for copying messages. + Valid values are none, gzip, snappy, lz4 and zstd. + Changing this parameter will create a new resource. + source_task.consumer_strategy: '- (Optional, String, ForceNew) Specifies the start offset. Value options are:' + source_task.current_instance_alias: |- + - (Optional, String, ForceNew) Specifies the current Kafka instance alias. + Changing this parameter will create a new resource. + source_task.direction: '- (Optional, String, ForceNew) Specifies the sync direction. Valid values are:' + source_task.password: |- + - (Optional, String, ForceNew) Specifies the peer Kafka user password. + It's required when security_protocol is SASL_SSL. Changing this parameter will create a new resource. + source_task.peer_instance_address: |- + - (Optional, List, ForceNew) Specifies the peer Kafka instance address list. + Changing this parameter will create a new resource. + source_task.peer_instance_alias: |- + - (Optional, String, ForceNew) Specifies the peer Kafka instance alias. + Changing this parameter will create a new resource. + source_task.peer_instance_id: |- + - (Optional, String, ForceNew) Specifies the peer Kafka instance ID. + Changing this parameter will create a new resource. + source_task.provenance_header_enabled: |- + - (Optional, Bool, ForceNew) Specifies whether the message header contains the message source. + Changing this parameter will create a new resource. + source_task.rename_topic_enabled: |- + - (Optional, Bool, ForceNew) Specifies whether to rename the topic. If true, will add the + alias of the source Kafka instance before the target topic name to form a new name of the target topic. + Changing this parameter will create a new resource. + source_task.replication_factor: |- + - (Optional, Int, ForceNew) Specifies the number of topic replicas. The value of this parameter + cannot exceed the number of brokers in the peer instance. Changing this parameter will create a new resource. + source_task.sasl_mechanism: |- + - (Optional, String, ForceNew) Specifies the peer Kafka authentication mode. + Changing this parameter will create a new resource. + source_task.security_protocol: '- (Optional, String, ForceNew) Specifies the peer Kafka authentication. Valid values are:' + source_task.sync_consumer_offsets_enabled: |- + - (Optional, Bool, ForceNew) Specifies whether to sync the consumption progress. + Changing this parameter will create a new resource. + source_task.task_num: |- + - (Optional, Int, ForceNew) Specifies the number of data replication tasks. + If the direction is set to two-way, the actual number of tasks will be twice the number of tasks you configure here. + Changing this parameter will create a new resource. + source_task.topics_mapping: |- + - (Optional, List, ForceNew) Specifies the topic mapping string list, which is used to customize + the target topic name, e.g., topic-sc-1:topic-sc-2. Changing this parameter will create a new resource. + source_task.user_name: |- + - (Optional, String, ForceNew) Specifies the peer Kafka user name. + It's required when security_protocol is SASL_SSL. Changing this parameter will create a new resource. + source_type: |- + - (Optional, String, ForceNew) Specifies the source type of the smart connect task. Valid values are + KAFKA_REPLICATOR_SOURCE and NONE. Changing this parameter will create a new resource. + start_later: |- + - (Optional, Bool, ForceNew) Specifies whether to start a task later. + Changing this parameter will create a new resource. + status: '- Indicates the status of the smart connect task.' + task_name: |- + - (Required, String, ForceNew) Specifies the smart connect task name. + Changing this parameter will create a new resource. + topics: |- + - (Optional, List, ForceNew) Specifies the topic names list of the smart connect task. + Changing this parameter will create a new resource. + topics_regex: |- + - (Optional, String, ForceNew) Specifies the regular expression of topic name for the smart connect task. + Changing this parameter will create a new resource. + importStatements: [] + opentelekomcloud_dms_smart_connect_v2: + subCategory: Distributed Message Service (DMS) + description: Manages an up-to-date DMS Smart Connect v2 resource within OpenTelekomCloud. + name: opentelekomcloud_dms_smart_connect_v2 + title: opentelekomcloud_dms_smart_connect_v2 + examples: + - name: test + manifest: |- + { + "bandwidth": "100MB", + "instance_id": "${var.instance_id}", + "node_count": 2, + "storage_spec_code": "dms.physical.storage.ultra.v2" + } + references: + instance_id: var.instance_id + argumentDocs: + bandwidth: '- (Optional, String, ForceNew) Specifies the bandwidth of the connector.' + id: '- The resource ID.' + instance_id: '- (Required, String, ForceNew) Specifies the ID of the DMS instance.' + node_count: '- (Optional, Int, ForceNew) Specifies the node count of the connector. Defaults to 2 and minimum is 2.' + region: '- The DMS instance region' + storage_spec_code: '- (Required, String, ForceNew) Specifies the storage specification code of the connector.' + importStatements: [] opentelekomcloud_dms_topic_v1: subCategory: Distributed Message Service (DMS) description: Manages a DMS Topic resource within OpenTelekomCloud. @@ -7224,6 +7640,40 @@ resources: "user_data": "#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com", "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" } + - name: basic + manifest: |- + { + "availability_zone": "eu-de-01", + "flavor": "s2.large.2", + "image_id": "ad091b52-742f-469e-8f3c-fd81cadf0743", + "key_name": "KeyPair-test", + "name": "server_1", + "nics": [ + { + "network_id": "55534eaa-533a-419d-9b40-ec427ea7195a" + } + ], + "os_scheduler_hints": [ + { + "group": "${opentelekomcloud_compute_servergroup_v2.sg_1.id}", + "tenancy": "shared" + } + ], + "tags": { + "muh": "kuh" + }, + "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" + } + references: + os_scheduler_hints.group: opentelekomcloud_compute_servergroup_v2.sg_1.id + dependencies: + opentelekomcloud_compute_servergroup_v2.sg_1: |- + { + "name": "sg_1", + "policies": [ + "anti-affinity" + ] + } - name: ecs manifest: |- { @@ -7271,74 +7721,502 @@ resources: SAS: ': high I/O disk type. Available for all AZs.' SATA: ': common I/O disk type. Available for all AZs.' SSD: ': ultra-high I/O disk type. Available for all AZs.' - auto_recovery: '- (Optional) Whether configure automatic recovery of an instance.' + auto_recovery: '- (Optional, Boolean) Whether configure automatic recovery of an instance.' availability_zone: |- - - (Required) The availability zone in which to create the server. + - (Required, String, ForceNew) The availability zone in which to create the server. Changing this creates a new server. co-p1: ': high I/O(performance-optimized) disk type.' data_disks: |- - - (Optional) An array of one or more data disks to attach to the + - (Optional, List, ForceNew) An array of one or more data disks to attach to the instance. The data_disks object structure is documented below. Changing this creates a new server. data_disks.kms_id: |- - - (Optional) The Encryption KMS ID of the data disk. Changing this + - (Optional, String, ForceNew) The Encryption KMS ID of the data disk. Changing this creates a new server. data_disks.size: |- - - (Required) The size of the data disk in GB. The value range is 10 to 32768. + - (Required, String, ForceNew) The size of the data disk in GB. The value range is 10 to 32768. Changing this creates a new server. data_disks.snapshot_id: |- - - (Optional) Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. + - (Optional, String, ForceNew) Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. Changing this creates a new server. data_disks.type: |- - - (Required) The data disk type of the server. For HANA, HL1, and HL2 ECSs use co-p1 and uh-l1 disks. + - (Required, String, ForceNew) The data disk type of the server. For HANA, HL1, and HL2 ECSs use co-p1 and uh-l1 disks. Changing this creates a new server. Options are limited depending on AZ. Available options are: delete_disks_on_termination: |- - - (Optional) Delete the data disks upon termination of the instance. + - (Optional, Boolean) Delete the data disks upon termination of the instance. Defaults to false. Changing this creates a new server. - flavor: '- (Required) The name of the desired flavor for the server.' - image_id: '- (Required) The ID of the desired image for the server. Changing this creates a new server.' + flavor: '- (Required, String) The name of the desired flavor for the server.' + image_id: '- (Required, String, ForceNew) The ID of the desired image for the server. Changing this creates a new server.' key_name: |- - - (Optional) The name of a key pair to put on the server. The key + - (Optional, String, ForceNew) The name of a key pair to put on the server. The key pair must already be created and associated with the tenant's account. Changing this creates a new server. - name: '- (Required) A unique name for the instance.' + name: '- (Required, String) A unique name for the instance.' nics: |- - - (Required) An array of one or more networks to attach to the + - (Required, List, ForceNew) An array of one or more networks to attach to the instance. The nics object structure is documented below. Changing this creates a new server. nics.ip_address: |- - - (Optional) Specifies a fixed IPv4 address to be used on this + - (Optional, String, ForceNew) Specifies a fixed IPv4 address to be used on this network. Changing this creates a new server. - nics.network_id: '- (Required) The network UUID to attach to the server. Changing this creates a new server.' - nics/mac_address: '- The MAC address of the NIC on that network.' - nics/port_id: '- The port ID of the NIC on that network.' - nics/type: '- The type of the address of the NIC on that network.' + nics.network_id: '- (Required, String, ForceNew) The network UUID to attach to the server. Changing this creates a new server.' + nics/mac_address: '- (String) The MAC address of the NIC on that network.' + nics/port_id: '- (String) The port ID of the NIC on that network.' + nics/type: '- (String) The type of the address of the NIC on that network.' + os_scheduler_hints: '- (Optional, Map, ForceNew) Schedules ECSs, for example, by configuring an ECS group. The os_scheduler_hints object structure is documented below. Changing this creates a new server.' + os_scheduler_hints.dedicated_host_id: '- (Optional, String, ForceNew) Specifies the dedicated host ID. A Dedicated Host ID takes effect only when tenancy is set to dedicated.' + os_scheduler_hints.group: '- (Optional, String, ForceNew) Specifies the ECS group ID in UUID format.' + os_scheduler_hints.tenancy: '- (Optional, String, ForceNew) Creates ECSs on a dedicated or shared host. Available options are: dedicated or shared.' password: |- - - (Optional) The administrative password to assign to the server. + - (Optional, String, ForceNew) The administrative password to assign to the server. Changing this creates a new server. security_groups: |- - - (Optional) An array of one or more security group IDs + - (Optional, List) An array of one or more security group IDs to associate with the server. If this parameter is left blank, the default security group is bound to the ECS by default. - system_disk_id: '- The ID of the system disk.' + system_disk_id: '- (String) The ID of the system disk.' system_disk_kms_id: |- - - (Optional) The Encryption KMS ID of the system disk. Changing this + - (Optional, String, ForceNew) The Encryption KMS ID of the system disk. Changing this creates a new server. system_disk_size: |- - - (Optional) The system disk size in GB, The value range is 1 to 1024. + - (Optional, Integer, ForceNew) The system disk size in GB, The value range is 1 to 1024. Changing this creates a new server. system_disk_type: |- - - (Optional) The system disk type of the server. For HANA, HL1, and HL2 ECSs use co-p1 and uh-l1 disks. + - (Optional, String, ForceNew) The system disk type of the server. For HANA, HL1, and HL2 ECSs use co-p1 and uh-l1 disks. Changing this creates a new server. Options are limited depending on AZ. Available options are: - tags: '- (Optional) Tags key/value pairs to associate with the instance.' + tags: '- (Optional, Map) Tags key/value pairs to associate with the instance.' uh-l1: ': ultra-high I/O(latency-optimized) disk type.' user_data: |- - - (Optional) The user data to provide when launching the instance. + - (Optional, String, ForceNew) The user data to provide when launching the instance. Changing this creates a new server. - volumes_attached/id: '- The ID of the data disk.' - vpc_id: '- (Required) The ID of the desired VPC for the server. Changing this creates a new server.' + volumes_attached/id: '- (String) The ID of the data disk.' + vpc_id: '- (Required, String, ForceNew) The ID of the desired VPC for the server. Changing this creates a new server.' importStatements: - terraform import opentelekomcloud_ecs_instance_v1.instance_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9 + opentelekomcloud_enterprise_vpn_connection_monitor_v5: + subCategory: Virtual Private Network (VPN) + description: Manages a Enterprise VPN Connection Monitoring Service resource within OpenTelekomCloud. + name: opentelekomcloud_enterprise_vpn_connection_monitor_v5 + title: opentelekomcloud_enterprise_vpn_connection_monitor_v5 + examples: + - name: test + manifest: |- + { + "connection_id": "${var.connection_id}" + } + references: + connection_id: var.connection_id + argumentDocs: + connection_id: '- (Required, String, ForceNew) Specifies the ID of the VPN connection to monitor.' + destination_ip: '- The destination IP address of the VPN connection.' + id: '- The resource ID.' + region: '- Specifies the region in which resource is created.' + source_ip: '- The source IP address of the VPN connection.' + status: '- The status of the connection monitor.' + importStatements: [] + opentelekomcloud_enterprise_vpn_connection_v5: + subCategory: Virtual Private Network (VPN) + description: Manages a Enterprise VPN connection Service resource within OpenTelekomCloud. + name: opentelekomcloud_enterprise_vpn_connection_v5 + title: opentelekomcloud_enterprise_vpn_connection_v5 + examples: + - name: conn + manifest: |- + { + "customer_gateway_id": "${var.customer_gateway_id}", + "gateway_id": "${var.gateway_id}", + "gateway_ip": "${var.gateway_ip}", + "name": "${var.name}", + "peer_subnets": [ + "${var.peer_subnet}" + ], + "psk": "Test@123", + "vpn_type": "static" + } + references: + customer_gateway_id: var.customer_gateway_id + gateway_id: var.gateway_id + gateway_ip: var.gateway_ip + name: var.name + - name: policy + manifest: |- + { + "customer_gateway_id": "${var.customer_gateway_id}", + "gateway_id": "${var.gateway_id}", + "gateway_ip": "${var.gateway_ip}", + "ikepolicy": [ + { + "authentication_algorithm": "sha2-256", + "authentication_method": "pre-share", + "encryption_algorithm": "aes-128", + "ike_version": "v2", + "lifetime_seconds": 86400 + } + ], + "ipsecpolicy": [ + { + "authentication_algorithm": "sha2-256", + "encapsulation_mode": "tunnel", + "encryption_algorithm": "aes-128", + "lifetime_seconds": 3600, + "pfs": "group14", + "transform_protocol": "esp" + } + ], + "name": "${var.name}", + "peer_subnets": [ + "${var.peer_subnet}" + ], + "psk": "Test@123", + "vpn_type": "static" + } + references: + customer_gateway_id: var.customer_gateway_id + gateway_id: var.gateway_id + gateway_ip: var.gateway_ip + name: var.name + argumentDocs: + create: '- Default is 10 minutes.' + created_at: '- The create time.' + customer_gateway_id: '- (Required, String) The customer gateway ID.' + delete: '- Default is 10 minutes.' + dpd.interval: |- + - (Optional, Int) Specifies the DPD idle timeout period. + The value ranges from 10 to 3,600, in seconds. Defaults to 30. + dpd.msg: '- (Optional, String) Specifies the format of DPD packets. The value can be:' + dpd.seq-hash-notify: . + dpd.timeout: |- + - (Optional, Int) Specifies the interval for retransmitting DPD packets. + The value ranges from 2 to 60, in seconds. Defaults to 15. + enable_nqa: '- (Optional, Bool) Whether to enable NQA check. Defaults to false.' + gateway_id: '- (Required, String, ForceNew) The VPN gateway ID.' + gateway_ip: '- (Required, String, ForceNew) The VPN gateway IP ID.' + ha_role: |- + - (Optional, String, ForceNew) Specifies the mode of the VPN connection. + The valid values are master and slave, defaults to master. + This parameter is optional when you create a connection for a VPN gateway in active-active mode. + When you create a connection for a VPN gateway in active-standby mode, master indicates + the active connection, and slave indicates the standby connection. + In active-active mode, this field must be set to master for the connection established + using the active EIP or active private IP address of the VPN gateway, and must be set to slave + for the connection established using active EIP 2 or active private IP address 2 of the VPN gateway. + id: '- The resource ID.' + ikepolicy: |- + - (Optional, List) The IKE policy configurations. + The ikepolicy structure is documented below. + ikepolicy.authentication_algorithm: |- + - (Optional, String) The authentication algorithm. The value can be sha1, md5, + sha2-256, sha2-384, sha2-512. Defaults to sha2-256. sha1 and md5 are less secure, + please use them with caution. + ikepolicy.authentication_method: |- + - (Optional, String, ForceNew) The authentication method during IKE negotiation. + The value can be pre-share. Defaults to pre-share. + ikepolicy.dh_group: |- + - (Optional, String) Specifies the DH group used for key exchange in phase 1. + The value can be group1, group2, group5, group14, group15, group16, group19, group20, + or group21. Exercise caution when using group1, group2, group5, + or group14 as they have low security. Defaults to group15. + ikepolicy.dpd: |- + - (Optional, List) Specifies the dead peer detection (DPD) object. + The dpd structure is documented below. + ikepolicy.encryption_algorithm: |- + - (Optional, String) The encryption algorithm. The value can be 3des, aes-128, aes-192, + aes-256, aes-128-gcm-16, aes-256-gcm-16, aes-128-gcm-128, aes-256-gcm-128. Defaults to aes-128. + 3des is less secure, please use it with caution. + ikepolicy.ike_version: '- (Optional, String) The IKE negotiation version. The value can be v1 and v2. Defaults to v2.' + ikepolicy.lifetime_seconds: |- + - (Optional, Int) The life cycle of SA in seconds. The value ranges from 60 to 604,800. + Defaults to 86,400. When the life cycle expires, IKE SA will be automatically updated. + ikepolicy.local_id: '- (Optional, String) The local ID.' + ikepolicy.local_id_type: '- (Optional, String) The local ID type. The value can be ip or fqdn. Defaults to ip.' + ikepolicy.peer_id: '- (Optional, String) The peer ID.' + ikepolicy.peer_id_type: '- (Optional, String) The peer ID type. The value can be ip, fqdn. Defaults to ip.' + ikepolicy.phase_one_negotiation_mode: |- + - (Optional, String) The negotiation mode, only works when the ike_version is v1. + The value can be main or aggressive. Defaults to main. + ipsecpolicy: |- + - (Optional, List) The IPsec policy configurations. + The ipsecpolicy structure is documented below. + ipsecpolicy.authentication_algorithm: |- + - (Optional, String) The authentication algorithm. The value can be sha1, md5, + sha2-256, sha2-384, sha2-512. Defaults to sha2-256. sha1 and md5 are less secure, + please use them with caution. + ipsecpolicy.encapsulation_mode: |- + - (Optional, String) The encapsulation mode, only tunnel supported for now. + Defaults to tunnel. + ipsecpolicy.encryption_algorithm: |- + - (Optional, String) The encryption algorithm. The value can be 3des, aes-128, aes-192, + aes-256, aes-128-gcm-16, aes-256-gcm-16, aes-128-gcm-128, aes-256-gcm-128. Defaults to aes-128. + `3des** is less secure, please use it with caution. + ipsecpolicy.lifetime_seconds: |- + - (Optional, Int) The lifecycle time of Ipsec tunnel in seconds. + The value ranges from 60 to 604,800. Defaults to 3600. + ipsecpolicy.pfs: |- + - (Optional, String) The DH key group used by PFS. The value can be group1, group2, group5, group14 + group16, group19, group20, group21. Defaults to group14. + ipsecpolicy.transform_protocol: |- + - (Optional, String) The transform protocol. Only esp supported for now. + Defaults to esp. + name: '- (Required, String) The name of the VPN connection.' + peer_subnets: |- + - (Optional, List) The CIDR list of customer subnets. This parameter must be empty + when the attachment_type of the VPN gateway is set to er and vpn_type is set to policy or bgp. + This parameter is mandatory in other scenarios. + policy_rules: |- + - (Optional, List) The policy rules. Only works when vpn_type is set to policy + The policy_rules structure is documented below. + policy_rules.destination: '- (Optional, List) The list of destination CIDRs.' + policy_rules.rule_index: '- (Optional, Int) The rule index.' + policy_rules.source: '- (Optional, String) The source CIDR.' + psk: '- (Required, String) The pre-shared key.' + region: '- Specifies the region in which resource is created.' + seq-hash-notify: ': indicates that the payload of DPD packets is in the sequence of hash-notify;' + seq-notify-hash: ': indicates that the payload of DPD packets is in the sequence of notify-hash;' + status: '- The status of the VPN connection.' + tags: '- (Optional, Map) Specifies the tags of the VPN connection.' + tunnel_local_address: '- (Optional, String) The local tunnel address.' + tunnel_peer_address: '- (Optional, String) The peer tunnel address.' + update: '- Default is 10 minutes.' + updated_at: '- The update time.' + vpn_type: '- (Required, String, ForceNew) The connection type. The value can be policy, static or bgp.' + importStatements: [] + opentelekomcloud_enterprise_vpn_customer_gateway_v5: + subCategory: Virtual Private Network (VPN) + description: Manages a Enterprise VPN Customer Gateway Service resource within OpenTelekomCloud. + name: opentelekomcloud_enterprise_vpn_customer_gateway_v5 + title: opentelekomcloud_enterprise_vpn_customer_gateway_v5 + examples: + - name: test + manifest: |- + { + "id_value": "${var.id_value}", + "name": "${var.name}" + } + references: + id_value: var.id_value + name: var.name + argumentDocs: + asn: |- + - (Optional, Int, ForceNew) The BGP ASN number of the customer gateway. + The value ranges from 1 to 4,294,967,295, the default value is 65,000. + Set this parameter to 0 when id_type is set to fqdn. + created_at: '- The create time.' + id: '- The resource ID.' + id_type: |- + - (Optional, String, ForceNew) Specifies the identifier type of customer gateway. + The value can be ip or fqdn. The default value is ip. + id_value: |- + - (Required, String, ForceNew) Specifies the identifier of a customer gateway. + When id_type is set to ip, the value is an IPv4 address in dotted decimal notation, for example, 192.168.45.7. + When id_type is set to fqdn, the value is a string of characters that can contain uppercase letters, lowercase letters, + digits, and special characters. Spaces and the following special characters are not supported: & < > [ ] \ ?. + ip: '- Specifies the IP address of the customer gateway.' + name: |- + - (Required, String) The customer gateway name. + The valid length is limited from 1 to 64, only letters, digits, hyphens (-) and underscores (_) are allowed. + region: '- Specifies the region in which resource is created.' + route_mode: '- Specifies the routing mode.' + tags: '- (Optional, Map) Specifies the tags of the customer gateway.' + updated_at: '- The update time.' + importStatements: [] + opentelekomcloud_enterprise_vpn_gateway_v5: + subCategory: Virtual Private Network (VPN) + description: Manages a Enterprise VPN Gateway Service resource within OpenTelekomCloud. + name: opentelekomcloud_enterprise_vpn_gateway_v5 + title: opentelekomcloud_enterprise_vpn_gateway_v5 + examples: + - name: gw_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01", + "eu-de-02" + ], + "connect_subnet": "${opentelekomcloud_vpc_subnet_v1.subnet.id}", + "eip1": [ + { + "id": "${opentelekomcloud_vpc_eip_v1.eip_1.id}" + } + ], + "eip2": [ + { + "id": "${opentelekomcloud_vpc_eip_v1.eip_2.id}" + } + ], + "local_subnets": [ + "${opentelekomcloud_vpc_subnet_v1.subnet.cidr}" + ], + "name": "${var.name}", + "tags": { + "foo": "bar", + "key": "val" + }, + "vpc_id": "${opentelekomcloud_vpc_v1.vpc.id}" + } + references: + connect_subnet: opentelekomcloud_vpc_subnet_v1.subnet.id + eip1.id: opentelekomcloud_vpc_eip_v1.eip_1.id + eip2.id: opentelekomcloud_vpc_eip_v1.eip_2.id + name: var.name + vpc_id: opentelekomcloud_vpc_v1.vpc.id + - name: gw_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01", + "eu-de-02" + ], + "connect_subnet": "${opentelekomcloud_vpc_subnet_v1.subnet.id}", + "eip1": [ + { + "bandwidth_name": "evpn-gw-bw-1", + "bandwidth_size": 5, + "charge_mode": "traffic", + "type": "5_bgp" + } + ], + "eip2": [ + { + "bandwidth_name": "evpn-gw-bw-2", + "bandwidth_size": 5, + "charge_mode": "traffic", + "type": "5_bgp" + } + ], + "ha_mode": "active-standby", + "local_subnets": [ + "${opentelekomcloud_vpc_subnet_v1.subnet.cidr}" + ], + "name": "${var.name}", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc.id}" + } + references: + connect_subnet: opentelekomcloud_vpc_subnet_v1.subnet.id + name: var.name + vpc_id: opentelekomcloud_vpc_v1.vpc.id + - name: gw_1 + manifest: |- + { + "access_private_ip_1": "172.16.0.99", + "access_private_ip_2": "172.16.0.100", + "access_subnet_id": "${opentelekomcloud_vpc_subnet_v1.subnet_er.id}", + "access_vpc_id": "${opentelekomcloud_vpc_v1.vpc_er.id}", + "attachment_type": "er", + "availability_zones": [ + "eu-de-01", + "eu-de-02" + ], + "er_id": "${var.er_id}", + "name": "${var.name}", + "network_type": "private" + } + references: + access_subnet_id: opentelekomcloud_vpc_subnet_v1.subnet_er.id + access_vpc_id: opentelekomcloud_vpc_v1.vpc_er.id + er_id: var.er_id + name: var.name + argumentDocs: + access_private_ip_1: |- + - (Optional, String, ForceNew) The private IP 1 in private network type VPN gateway. + It is the master IP 1 in active-active HA mode, and the master IP in active-standby HA mode. + Must declare the access_private_ip_2 at the same time, and can not use the same IP value. + Changing this parameter will create a new resource. + access_private_ip_2: |- + - (Optional, String, ForceNew) The private IP 2 in private network type VPN gateway. + It is the master IP 2 in active-active HA mode, and the slave IP in active-standby HA mode. + Must declare the access_private_ip_1 at the same time, and can not use the same IP value. + Changing this parameter will create a new resource. + access_subnet_id: |- + - (Optional, String, ForceNew) The access subnet ID. + The default value is the value of connect_subnet. + Changing this parameter will create a new resource. + access_vpc_id: |- + - (Optional, String, ForceNew) The access VPC ID. + The default value is the value of vpc_id. + Changing this parameter will create a new resource. + asn: |- + - (Optional, Int, ForceNew) The ASN number of BGP. The value ranges from 1 to 4,294,967,295. + Defaults to 64,512. + Changing this parameter will create a new resource. + attachment_type: |- + - (Optional, String, ForceNew) The attachment type. The value can be vpc and er. + Defaults to vpc. + Changing this parameter will create a new resource. + availability_zones: |- + - (Required, List, ForceNew) The list of availability zone IDs. + Changing this parameter will create a new resource. + connect_subnet: |- + - (Optional, String, ForceNew) The Network ID of the VPC subnet used by the VPN gateway. + This parameter is mandatory when attachment_type is vpc. + Changing this parameter will create a new resource. + create: '- Default is 10 minutes.' + created_at: '- The create time.' + delete: '- Default is 10 minutes.' + eip1: |- + - (Optional, List) The master 1 IP in active-active VPN gateway or the master IP + in active-standby VPN gateway. This parameter is mandatory when network_type is public or left empty. + The object structure is documented below. + eip1.bandwidth_id: '- The bandwidth ID.' + eip1.bandwidth_name: |- + - (Optional, String, ForceNew) The bandwidth name. + The valid length is limited from 1 to 64, only letters, digits, hyphens (-) and underscores (_) are allowed. + Changing this parameter will create a new resource. + eip1.bandwidth_size: |- + - (Optional, Int, ForceNew) Bandwidth size in Mbit/s. When the flavor is Basic, the value + cannot be greater than 100. When the flavor is Professional1, the value cannot be greater than 300. + When the flavor is Professional2, the value cannot be greater than 1,000. + Changing this parameter will create a new resource. + eip1.charge_mode: |- + - (Optional, String, ForceNew) The charge mode of the bandwidth. The value can be bandwidth and traffic. + Changing this parameter will create a new resource. + eip1.id: |- + - (Optional, String, ForceNew) The public IP ID. + Changing this parameter will create a new resource. + eip1.ip_address: '- The public IP address.' + eip1.ip_version: '- Specifies the EIP version.' + eip1.tags: '- (Optional, Map) Specifies the tags of the VPN gateway.' + eip1.type: |- + - (Optional, String, ForceNew) The EIP type. + Changing this parameter will create a new resource. + eip2: |- + - (Optional, List, ForceNew) The master 2 IP in active-active VPN gateway or the slave IP + in active-standby VPN gateway. This parameter is mandatory when network_type is public or left empty. + The object structure is documented below. + er_attachment_id: '- The ER attachment ID.' + er_id: |- + - (Optional, String, ForceNew) The enterprise router ID to attach with to VPN gateway. + This parameter is mandatory when attachment_type is er. + Changing this parameter will create a new resource. + flavor: |- + - (Optional, String, ForceNew) The flavor of the VPN gateway. + The value can be Basic, Professional1, Professional2. Defaults to Professional1. + Changing this parameter will create a new resource. + ha_mode: |- + - (Optional, String, ForceNew) The HA mode of VPN gateway. Valid values are active-active and + active-standby. The default value is active-active. + Changing this parameter will create a new resource. + id: '- The ID of the VPN gateway' + local_subnets: |- + - (Optional, List) The list of local subnets. + This parameter is mandatory when attachment_type is vpc. + name: |- + - (Required, String) The name of the VPN gateway. + The valid length is limited from 1 to 64, only letters, digits, hyphens (-) and underscores (_) are allowed. + network_type: |- + - (Optional, String, ForceNew) The network type. The value can be public and private. + Defaults to public. + Changing this parameter will create a new resource. + region: '- Specifies the region in which resource is created.' + status: '- The status of VPN gateway.' + update: '- Default is 10 minutes.' + updated_at: '- The update time.' + used_connection_group: '- The number of used connection groups.' + used_connection_number: '- The number of used connections.' + vpc_id: |- + - (Optional, String, ForceNew) The ID of the VPC to which the VPN gateway is connected. + This parameter is mandatory when attachment_type is vpc. + Changing this parameter will create a new resource. + importStatements: [] opentelekomcloud_er_association_v3: subCategory: Enterprise Router (ER) description: Manages an Enterprise Router Association resource within OpenTelekomCloud. diff --git a/config/schema.json b/config/schema.json index 8b7fea4..5634a12 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/opentelekomcloud/opentelekomcloud":{"provider":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The access key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","description_kind":"plain","optional":true},"agency_domain_name":{"type":"string","description":"The name of domain who created the agency (Identity v3).","description_kind":"plain","optional":true},"agency_name":{"type":"string","description":"The name of agency","description_kind":"plain","optional":true},"allow_reauth":{"type":"bool","description_kind":"plain","optional":true},"auth_url":{"type":"string","description":"The Identity authentication URL.","description_kind":"plain","optional":true},"backoff_retry_timeout":{"type":"number","description":"Timeout in seconds for backoff retry","description_kind":"plain","optional":true},"cacert_file":{"type":"string","description":"A Custom CA certificate.","description_kind":"plain","optional":true},"cert":{"type":"string","description":"A client certificate to authenticate with.","description_kind":"plain","optional":true},"cloud":{"type":"string","description":"An entry in a `clouds.yaml` file to use.","description_kind":"plain","optional":true},"delegated_project":{"type":"string","description":"The name of delegated project (Identity v3).","description_kind":"plain","optional":true},"domain_id":{"type":"string","description":"The ID of the Domain to scope to (Identity v3).","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The name of the Domain to scope to (Identity v3).","description_kind":"plain","optional":true},"endpoint_type":{"type":"string","description_kind":"plain","optional":true},"insecure":{"type":"bool","description":"Trust self-signed certificates.","description_kind":"plain","optional":true},"key":{"type":"string","description":"A client private key to authenticate with.","description_kind":"plain","optional":true},"max_backoff_retries":{"type":"number","description":"How many times HTTP request should be retried when rate limit reached","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"How many times HTTP connection should be retried until giving up.","description_kind":"plain","optional":true},"passcode":{"type":"string","description":"One-time MFA passcode","description_kind":"plain","optional":true},"password":{"type":"string","description":"Password to login with.","description_kind":"plain","optional":true,"sensitive":true},"region":{"type":"string","description":"The OpenTelekomCloud region to connect to.","description_kind":"plain","optional":true},"secret_key":{"type":"string","description":"The secret key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","description_kind":"plain","optional":true,"sensitive":true},"security_token":{"type":"string","description":"Security token to use for OBS federated authentication.","description_kind":"plain","optional":true,"sensitive":true},"swauth":{"type":"bool","description":"Use Swift's authentication system instead of Keystone. Only used for\ninteraction with Swift.","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true},"tenant_name":{"type":"string","description":"The name of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true},"token":{"type":"string","description":"Authentication token to use as an alternative to username/password.","description_kind":"plain","optional":true,"sensitive":true},"user_id":{"type":"string","description":"User ID to login with.","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"Username to login with.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"opentelekomcloud_antiddos_v1":{"version":0,"block":{"attributes":{"app_type_id":{"type":"number","description_kind":"plain","required":true},"cleaning_access_pos_id":{"type":"number","description_kind":"plain","required":true},"enable_l7":{"type":"bool","description_kind":"plain","required":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"http_request_pos_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_pos_id":{"type":"number","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_apigw_acl_policy_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_acl_policy_v2":{"version":0,"block":{"attributes":{"entity_type":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_publishment_v2":{"version":0,"block":{"attributes":{"api_id":{"type":"string","description_kind":"plain","required":true},"api_name":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"environment_id":{"type":"string","description_kind":"plain","required":true},"environment_name":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"history":{"type":["list",["object",{"description":"string","version_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"publish_id":{"type":"string","description":"The publish ID of the API in current environment.","description_kind":"plain","computed":true},"published_at":{"type":"string","description":"Time when the current version was published.","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_v2":{"version":0,"block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"body_description":{"type":"string","description_kind":"plain","optional":true},"cors":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"failure_response":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registered_at":{"type":"string","description_kind":"plain","computed":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","required":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"response_id":{"type":"string","description_kind":"plain","optional":true},"security_authentication_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"security_authentication_type":{"type":"string","description_kind":"plain","optional":true},"success_response":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":50},"func_graph":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"invocation_type":{"type":"string","description_kind":"plain","optional":true},"network_type":{"type":"string","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"func_graph_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"invocation_type":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"network_type":{"type":"string","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description_kind":"plain"},"max_items":5},"http":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","optional":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"retry_count":{"type":"number","description_kind":"plain","optional":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"url_domain":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_id":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_proxy_host":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"http_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","optional":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"retry_count":{"type":"number","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"url_domain":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_id":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_proxy_host":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description_kind":"plain"},"max_items":5},"mock":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"response":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"mock_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"response":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description":"The mock policy backends.","description_kind":"plain"},"max_items":5},"request_params":{"nesting_mode":"set","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"enumeration":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"number","description_kind":"plain","optional":true},"minimum":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"passthrough":{"type":"bool","description_kind":"plain","optional":true},"required":{"type":"bool","description_kind":"plain","optional":true},"sample":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"validity_check":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":50}},"description_kind":"plain"}},"opentelekomcloud_apigw_appcode_v2":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_application_authorization_v2":{"version":0,"block":{"attributes":{"api_ids":{"type":["set","string"],"description_kind":"plain","required":true},"application_id":{"type":"string","description_kind":"plain","required":true},"env_id":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_application_v2":{"version":0,"block":{"attributes":{"app_codes":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"app_key":{"type":"string","description_kind":"plain","computed":true},"app_secret":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"registration_time":{"type":"string","description_kind":"plain","computed":true},"secret_action":{"type":"string","description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_custom_authorizer_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_body_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"identity":{"nesting_mode":"set","block":{"attributes":{"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"validation":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_environment_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_environment_variable_v2":{"version":0,"block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_gateway_v2":{"version":0,"block":{"attributes":{"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"bandwidth_charging_mode":{"type":"string","description_kind":"plain","optional":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_bandwidth_charging_mode":{"type":"string","description_kind":"plain","optional":true},"ingress_bandwidth_size":{"type":"number","description_kind":"plain","optional":true},"loadbalancer_provider":{"type":"string","description_kind":"plain","optional":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_egress_addresses":{"type":["list","string"],"description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"public_egress_address":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"spec_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"supported_features":{"type":["list","string"],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_ingress_address":{"type":"string","description_kind":"plain","computed":true},"vpcep_service_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registration_time":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"environment":{"nesting_mode":"set","block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"variable":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_response_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"body":{"type":"string","description_kind":"plain","required":true},"error_type":{"type":"string","description_kind":"plain","required":true},"status_code":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_signature_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"signature_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_signature_v2":{"version":0,"block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"secret":{"type":"string","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_throttling_policy_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_throttling_policy_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"max_app_requests":{"type":"number","description_kind":"plain","optional":true},"max_ip_requests":{"type":"number","description_kind":"plain","optional":true},"max_user_requests":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"period_unit":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"app_throttles":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"throttling_object_id":{"type":"string","description_kind":"plain","required":true},"throttling_object_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":30},"user_throttles":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"throttling_object_id":{"type":"string","description_kind":"plain","required":true},"throttling_object_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":30}},"description_kind":"plain"}},"opentelekomcloud_apigw_vpc_channel_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_algorithm":{"type":"number","description_kind":"plain","required":true},"member_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"health_check":{"nesting_mode":"list","block":{"attributes":{"enable_client_ssl":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"http_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interval":{"type":"number","description_kind":"plain","required":true},"method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"threshold_abnormal":{"type":"number","description_kind":"plain","required":true},"threshold_normal":{"type":"number","description_kind":"plain","required":true},"timeout":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"member":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"host":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_backup":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"member_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"microservice_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"microservice_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"microservice_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"microservice":{"nesting_mode":"list","block":{"block_types":{"cce_config":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"label_key":{"type":"string","description_kind":"plain","optional":true},"label_value":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"cse_config":{"nesting_mode":"list","block":{"attributes":{"engine_id":{"type":"string","description_kind":"plain","required":true},"service_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_configuration_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_configuration_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"instance_config":{"nesting_mode":"list","block":{"attributes":{"flavor":{"type":"string","description_kind":"plain","optional":true},"image":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"key_name":{"type":"string","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"list","block":{"attributes":{"disk_type":{"type":"string","description_kind":"plain","required":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"personality":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":5},"public_ip":{"nesting_mode":"list","block":{"block_types":{"eip":{"nesting_mode":"list","block":{"attributes":{"ip_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"bandwidth":{"nesting_mode":"list","block":{"attributes":{"charging_mode":{"type":"string","description_kind":"plain","required":true},"share_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_group_v1":{"version":0,"block":{"attributes":{"available_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description":"The cooling duration, in seconds.","description_kind":"plain","optional":true},"current_instance_number":{"type":"number","description_kind":"plain","computed":true},"delete_instances":{"type":"string","description":"Whether to delete instances when they are removed from the AS group.","description_kind":"plain","required":true},"delete_publicip":{"type":"bool","description_kind":"plain","required":true},"desire_instance_number":{"type":"number","description_kind":"plain","optional":true},"health_periodic_audit_grace_period":{"type":"number","description":"The grace period for instance health check, in seconds.","description_kind":"plain","optional":true},"health_periodic_audit_method":{"type":"string","description_kind":"plain","optional":true},"health_periodic_audit_time":{"type":"number","description":"The health check period for instances, in minutes.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_terminate_policy":{"type":"string","description_kind":"plain","optional":true},"instances":{"type":["list","string"],"description":"The instances id list in the as group.","description_kind":"plain","computed":true},"lb_listener_id":{"type":"string","description":"The system supports the binding of up to six classic LB listeners, the IDs of which are separated using a comma.","description_kind":"plain","deprecated":true,"optional":true},"max_instance_number":{"type":"number","description_kind":"plain","optional":true},"min_instance_number":{"type":"number","description_kind":"plain","optional":true},"notifications":{"type":["list","string"],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_configuration_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_group_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"lbaas_listeners":{"nesting_mode":"list","block":{"attributes":{"pool_id":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":6},"networks":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5},"security_groups":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_as_policy_v1":{"version":0,"block":{"attributes":{"alarm_id":{"type":"string","description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_group_id":{"type":"string","description_kind":"plain","required":true},"scaling_policy_name":{"type":"string","description_kind":"plain","required":true},"scaling_policy_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"scaling_policy_action":{"nesting_mode":"list","block":{"attributes":{"instance_number":{"type":"number","description_kind":"plain","optional":true},"operation":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_policy":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","optional":true},"launch_time":{"type":"string","description_kind":"plain","required":true},"recurrence_type":{"type":"string","description_kind":"plain","optional":true},"recurrence_value":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_policy_v2":{"version":0,"block":{"attributes":{"alarm_id":{"type":"string","description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["set",["object",{"bandwidth_share_type":"string","eip_address":"string","eip_id":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_policy_name":{"type":"string","description_kind":"plain","required":true},"scaling_policy_type":{"type":"string","description_kind":"plain","required":true},"scaling_resource_id":{"type":"string","description_kind":"plain","required":true},"scaling_resource_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"scaling_policy_action":{"nesting_mode":"set","block":{"attributes":{"limits":{"type":"number","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","optional":true},"percentage":{"type":"number","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scheduled_policy":{"nesting_mode":"set","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","optional":true},"launch_time":{"type":"string","description_kind":"plain","required":true},"recurrence_type":{"type":"string","description_kind":"plain","optional":true},"recurrence_value":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_blockstorage_volume_v2":{"version":0,"block":{"attributes":{"attachment":{"type":["set",["object",{"device":"string","id":"string","instance_id":"string"}]],"description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cascade":{"type":"bool","description_kind":"plain","optional":true},"consistency_group_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","required":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"source_replica":{"type":"string","description_kind":"plain","optional":true},"source_vol_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"wwn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cbr_policy_v3":{"version":0,"block":{"attributes":{"destination_project_id":{"type":"string","description_kind":"plain","optional":true},"destination_region":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"trigger_pattern":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"operation_definition":{"nesting_mode":"list","block":{"attributes":{"day_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"month_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"retention_duration_days":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timezone":{"type":"string","description_kind":"plain","required":true},"week_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"year_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cbr_vault_v3":{"version":0,"block":{"attributes":{"auto_bind":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"auto_expand":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"backup_policy_id":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"enterprise_project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"provider_id":{"type":"string","description_kind":"plain","computed":true},"resource":{"type":["set",["object",{"backup_count":"number","backup_size":"number","exclude_volumes":["set","string"],"id":"string","include_volumes":["set","string"],"name":"string","protect_status":"string","size":"number","type":"string"}]],"description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"billing":{"nesting_mode":"list","block":{"attributes":{"allocated":{"type":"number","description_kind":"plain","computed":true},"charging_mode":{"type":"string","description_kind":"plain","optional":true},"cloud_type":{"type":"string","description_kind":"plain","optional":true},"consistent_level":{"type":"string","description_kind":"plain","optional":true},"console_url":{"type":"string","description_kind":"plain","optional":true},"extra_info":{"type":["map","string"],"description_kind":"plain","optional":true},"frozen_scene":{"type":"string","description_kind":"plain","computed":true},"is_auto_pay":{"type":"bool","description_kind":"plain","optional":true},"is_auto_renew":{"type":"bool","description_kind":"plain","optional":true},"object_type":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","optional":true},"period_type":{"type":"string","description_kind":"plain","optional":true},"product_id":{"type":"string","description_kind":"plain","computed":true},"protect_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_unit":{"type":"string","description_kind":"plain","computed":true},"used":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"bind_rules":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"template_name":{"type":"string","description_kind":"plain","required":true},"template_version":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"values":{"nesting_mode":"list","block":{"attributes":{"basic":{"type":["map","string"],"description_kind":"plain","required":true},"custom":{"type":["map","string"],"description_kind":"plain","required":true},"flavor":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_v3":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"authenticating_proxy_ca":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"authentication_mode":{"type":"string","description_kind":"plain","optional":true},"billing_mode":{"type":"number","description_kind":"plain","optional":true,"computed":true},"certificate_clusters":{"type":["list",["object",{"certificate_authority_data":"string","name":"string","server":"string"}]],"description_kind":"plain","computed":true},"certificate_users":{"type":["list",["object",{"client_certificate_data":"string","client_key_data":"string","name":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","required":true},"cluster_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"container_network_cidr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"container_network_type":{"type":"string","description_kind":"plain","required":true},"delete_all_network":{"type":"string","description_kind":"plain","optional":true},"delete_all_storage":{"type":"string","description_kind":"plain","optional":true},"delete_efs":{"type":"string","description_kind":"plain","optional":true},"delete_eni":{"type":"string","description_kind":"plain","optional":true},"delete_evs":{"type":"string","description_kind":"plain","optional":true},"delete_net":{"type":"string","description_kind":"plain","optional":true},"delete_obs":{"type":"string","description_kind":"plain","optional":true},"delete_sfs":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"eip":{"type":"string","description_kind":"plain","optional":true},"enable_volume_encryption":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"eni_subnet_cidr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"eni_subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"extend_param":{"type":["map","string"],"description_kind":"plain","optional":true},"external":{"type":"string","description_kind":"plain","computed":true},"external_otc":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","required":true},"highway_subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_addons":{"type":"bool","description_kind":"plain","optional":true},"ignore_certificate_clusters_data":{"type":"bool","description_kind":"plain","optional":true},"ignore_certificate_users_data":{"type":"bool","description_kind":"plain","optional":true},"installed_addons":{"type":["set","string"],"description_kind":"plain","computed":true},"internal":{"type":"string","description_kind":"plain","computed":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_svc_ip_range":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"multi_az":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"no_addons":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_control":{"type":"string","description_kind":"plain","computed":true},"security_group_node":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"authenticating_proxy":{"nesting_mode":"list","block":{"attributes":{"ca":{"type":"string","description_kind":"plain","required":true},"cert":{"type":"string","description_kind":"plain","required":true},"private_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_node_pool_v3":{"version":0,"block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"docker_base_size":{"type":"number","description_kind":"plain","optional":true},"docker_lvm_config_override":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description_kind":"plain","required":true},"k8s_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"max_node_count":{"type":"number","description_kind":"plain","optional":true},"max_pods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_node_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"postinstall":{"type":"string","description_kind":"plain","optional":true},"preinstall":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true},"runtime":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scale_down_cooldown_time":{"type":"number","description_kind":"plain","optional":true},"scale_enable":{"type":"bool","description_kind":"plain","optional":true},"server_group_reference":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"data_volumes":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"taints":{"nesting_mode":"list","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_node_v3":{"version":0,"block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","optional":true},"annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"bandwidth_charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true},"billing_mode":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"dedicated_host_id":{"type":"string","description_kind":"plain","optional":true},"docker_base_size":{"type":"number","description_kind":"plain","optional":true},"docker_lvm_config_override":{"type":"string","description_kind":"plain","optional":true},"ecs_performance_type":{"type":"string","description_kind":"plain","optional":true},"eip_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"eip_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"extend_param_charging_mode":{"type":"number","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"iptype":{"type":"string","description_kind":"plain","optional":true,"computed":true},"k8s_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_pods":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"order_id":{"type":"string","description_kind":"plain","optional":true},"os":{"type":"string","description_kind":"plain","optional":true,"computed":true},"postinstall":{"type":"string","description_kind":"plain","optional":true},"preinstall":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","optional":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"sharetype":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"data_volumes":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"taints":{"nesting_mode":"list","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ces_alarmrule":{"version":0,"block":{"attributes":{"alarm_action_enabled":{"type":"bool","description_kind":"plain","optional":true},"alarm_description":{"type":"string","description_kind":"plain","optional":true},"alarm_enabled":{"type":"bool","description_kind":"plain","optional":true},"alarm_level":{"type":"number","description_kind":"plain","optional":true},"alarm_name":{"type":"string","description_kind":"plain","required":true},"alarm_state":{"type":"string","description_kind":"plain","computed":true},"alarm_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"alarm_actions":{"nesting_mode":"list","block":{"attributes":{"notification_list":{"type":["list","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"condition":{"nesting_mode":"list","block":{"attributes":{"alarm_frequency":{"type":"number","description_kind":"plain","optional":true},"comparison_operator":{"type":"string","description_kind":"plain","required":true},"count":{"type":"number","description_kind":"plain","required":true},"filter":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":3}},"description_kind":"plain"},"min_items":1,"max_items":1},"ok_actions":{"nesting_mode":"list","block":{"attributes":{"notification_list":{"type":["list","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_server_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"admin_pass":{"type":"string","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"config_drive":{"type":"bool","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"host_id":{"type":"string","description_kind":"plain","computed":true},"host_status":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel_id":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"stop_before_destroy":{"type":"bool","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"block_device":{"nesting_mode":"list","block":{"attributes":{"boot_index":{"type":"number","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true},"destination_type":{"type":"string","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"guest_format":{"type":"string","description_kind":"plain","optional":true},"source_type":{"type":"string","description_kind":"plain","required":true},"uuid":{"type":"string","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"access_network":{"type":"bool","description_kind":"plain","optional":true},"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uuid":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_tags_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["set","string"],"description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_floatingip_associate_v2":{"version":0,"block":{"attributes":{"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"floating_ip":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_floatingip_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","computed":true},"pool":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_instance_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"admin_pass":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"all_metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"auto_recovery":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"config_drive":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encrypted_password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"power_state":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"ssh_private_key_path":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"stop_before_destroy":{"type":"bool","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"volume_attached":{"type":["list",["object",{"id":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"block_device":{"nesting_mode":"list","block":{"attributes":{"boot_index":{"type":"number","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true},"destination_type":{"type":"string","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"guest_format":{"type":"string","description_kind":"plain","optional":true},"source_type":{"type":"string","description_kind":"plain","required":true},"uuid":{"type":"string","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"access_network":{"type":"bool","description_kind":"plain","optional":true},"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uuid":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scheduler_hints":{"nesting_mode":"set","block":{"attributes":{"build_near_host_ip":{"type":"string","description_kind":"plain","optional":true},"deh_id":{"type":"string","description_kind":"plain","optional":true},"different_host":{"type":["list","string"],"description_kind":"plain","optional":true},"group":{"type":"string","description_kind":"plain","optional":true},"query":{"type":["list","string"],"description_kind":"plain","optional":true},"same_host":{"type":["list","string"],"description_kind":"plain","optional":true},"target_cell":{"type":"string","description_kind":"plain","optional":true},"tenancy":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_keypair_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_key":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_secgroup_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"from_group_id":{"type":"string","description_kind":"plain","optional":true},"from_port":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description_kind":"plain","required":true},"self":{"type":"bool","description_kind":"plain","optional":true},"to_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_servergroup_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policies":{"type":["list","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_volume_attach_v2":{"version":0,"block":{"attributes":{"device":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_policy_v1":{"version":0,"block":{"attributes":{"common":{"type":["map","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"provider_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"resource":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"scheduled_operation":{"nesting_mode":"set","block":{"attributes":{"day_backups":{"type":"number","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"max_backups":{"type":"number","description_kind":"plain","optional":true},"month_backups":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"permanent":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"retention_duration_days":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"trigger_id":{"type":"string","description_kind":"plain","computed":true},"trigger_name":{"type":"string","description_kind":"plain","computed":true},"trigger_pattern":{"type":"string","description_kind":"plain","required":true},"trigger_type":{"type":"string","description_kind":"plain","computed":true},"week_backups":{"type":"number","description_kind":"plain","optional":true},"year_backups":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_v1":{"version":0,"block":{"attributes":{"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"backup_record_id":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"vm_metadata":{"type":["set",["object",{"cloud_service_type":"string","disk":"number","eip":"string","image_type":"string","name":"string","private_ip":"string","ram":"number","vcpus":"number"}]],"description_kind":"plain","computed":true},"volume_backups":{"type":["set",["object",{"average_speed":"number","bootable":"bool","id":"string","image_type":"string","incremental":"bool","name":"string","size":"number","snapshot_id":"string","source_volume_id":"string","source_volume_name":"string","source_volume_size":"number","space_saving_ratio":"number","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_cluster_v1":{"version":0,"block":{"attributes":{"admin_pass":{"type":"string","description_kind":"plain","optional":true},"created":{"type":"string","description_kind":"plain","computed":true},"enable_authority":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_https":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"endpoint":{"type":"string","description_kind":"plain","computed":true},"expect_node_num":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_info":{"nesting_mode":"list","block":{"attributes":{"network_id":{"type":"string","description_kind":"plain","required":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"volume":{"nesting_mode":"list","block":{"attributes":{"encryption_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_snapshot_configuration_v1":{"version":0,"block":{"attributes":{"automatic":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"agency":{"type":"string","description_kind":"plain","required":true},"base_path":{"type":"string","description_kind":"plain","required":true},"bucket":{"type":"string","description_kind":"plain","required":true},"kms_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"creation_policy":{"nesting_mode":"list","block":{"attributes":{"delete_auto":{"type":"bool","description_kind":"plain","optional":true},"enable":{"type":"bool","description_kind":"plain","required":true},"keepday":{"type":"number","description_kind":"plain","required":true},"period":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_event_notification_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_id":{"type":"string","description_kind":"plain","computed":true},"notification_name":{"type":"string","description_kind":"plain","required":true},"notification_type":{"type":"string","description_kind":"plain","computed":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"notify_user_list":{"nesting_mode":"list","block":{"attributes":{"user_group":{"type":"string","description_kind":"plain","required":true},"user_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"operations":{"nesting_mode":"list","block":{"attributes":{"resource_type":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","required":true},"trace_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v1":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","required":true},"file_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tracker_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v3":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"compress_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"detail":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"file_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_obs_created":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_sort_by_service":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","required":true},"tracker_name":{"type":"string","description_kind":"plain","computed":true},"tracker_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dc_endpoint_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_dc_virtual_gateway_v2":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_ep_group_id":{"type":"string","description_kind":"plain","computed":true},"local_ep_group_ipv6_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redundant_device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"local_ep_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"local_ep_group_v6":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_dc_virtual_interface_v2":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","optional":true,"computed":true},"bandwidth":{"type":"number","description_kind":"plain","required":true},"bgp_md5":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"direct_connect_id":{"type":"string","description_kind":"plain","required":true},"enable_bfd":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_nqa":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_gateway_v4_ip":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"remote_ep_group_id":{"type":"string","description_kind":"plain","computed":true},"remote_gateway_v4_ip":{"type":"string","description_kind":"plain","optional":true},"route_mode":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"virtual_gateway_id":{"type":"string","description_kind":"plain","required":true},"vlan":{"type":"number","description_kind":"plain","required":true}},"block_types":{"remote_ep_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_dcs_instance_v1":{"version":0,"block":{"attributes":{"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"backup_at":{"type":["list","number"],"description_kind":"plain","deprecated":true,"optional":true},"backup_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"begin_at":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"capacity":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_version":{"type":"string","description_kind":"plain","computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"no_password_access":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"period_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"port":{"type":"number","description_kind":"plain","computed":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"product_id":{"type":"string","description_kind":"plain","required":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"save_days":{"type":"number","description_kind":"plain","deprecated":true,"optional":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"used_memory":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"backup_policy":{"nesting_mode":"list","block":{"attributes":{"backup_at":{"type":["list","number"],"description_kind":"plain","required":true},"backup_type":{"type":"string","description_kind":"plain","optional":true},"begin_at":{"type":"string","description_kind":"plain","required":true},"period_type":{"type":"string","description_kind":"plain","required":true},"save_days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"configuration":{"nesting_mode":"list","block":{"attributes":{"parameter_id":{"type":"string","description_kind":"plain","required":true},"parameter_name":{"type":"string","description_kind":"plain","required":true},"parameter_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"whitelist":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","required":true},"ip_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dcs_instance_v2":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true,"computed":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"bandwidth_info":{"type":["list",["object",{"bandwidth":"number","begin_time":"string","current_time":"string","end_time":"string","expand_count":"number","expand_effect_time":"number","expand_interval_time":"number","max_expand_count":"number","next_expand_time":"string","task_running":"bool"}]],"description_kind":"plain","computed":true},"cache_mode":{"type":"string","description_kind":"plain","computed":true},"capacity":{"type":"number","description_kind":"plain","required":true},"cpu_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deleted_nodes":{"type":["list","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_name":{"type":"string","description_kind":"plain","computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"launched_at":{"type":"string","description_kind":"plain","computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"private_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_type":{"type":"string","description_kind":"plain","computed":true},"readonly_domain_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"rename_commands":{"type":["map","string"],"description_kind":"plain","optional":true},"replica_count":{"type":"number","description_kind":"plain","computed":true},"reserved_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"sharding_count":{"type":"number","description_kind":"plain","computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"template_id":{"type":"string","description_kind":"plain","optional":true},"transparent_client_ip_enable":{"type":"bool","description_kind":"plain","computed":true},"used_memory":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"backup_policy":{"nesting_mode":"list","block":{"attributes":{"backup_at":{"type":["list","number"],"description_kind":"plain","required":true},"backup_type":{"type":"string","description_kind":"plain","optional":true},"begin_at":{"type":"string","description_kind":"plain","required":true},"period_type":{"type":"string","description_kind":"plain","optional":true},"save_days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"parameters":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"whitelist":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","required":true},"ip_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":4}},"description_kind":"plain"}},"opentelekomcloud_dds_backup_v3":{"version":0,"block":{"attributes":{"begin_time":{"type":"string","description_kind":"plain","computed":true},"datastore":{"type":["list",["object",{"storage_engine":"string","type":"string","version":"string"}]],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"end_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"instance_name":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dds_instance_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","private_ip":"string","public_ip":"string","role":"string","status":"string","type":"string"}]],"description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"pay_mode":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","required":true},"period":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"storage_engine":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"flavor":{"nesting_mode":"list","block":{"attributes":{"num":{"type":"number","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","optional":true},"spec_code":{"type":"string","description_kind":"plain","required":true},"storage":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_deh_host_v1":{"version":0,"block":{"attributes":{"auto_placement":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"available_memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"available_vcpus":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cores":{"type":"number","description_kind":"plain","optional":true,"computed":true},"host_type":{"type":"string","description_kind":"plain","required":true},"host_type_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_total":{"type":"number","description_kind":"plain","optional":true,"computed":true},"instance_uuids":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sockets":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vcpus":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"available_instance_capacities":{"nesting_mode":"list","block":{"attributes":{"flavor":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_direct_connect_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"applicant":{"type":"string","description_kind":"plain","computed":true},"apply_time":{"type":"string","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"building_line_product_id":{"type":"string","description_kind":"plain","computed":true},"cable_label":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"delete_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"hosting_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"interface_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_id":{"type":"string","description_kind":"plain","computed":true},"last_onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mobile":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_port_type":{"type":"string","description_kind":"plain","computed":true},"peer_provider":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","computed":true},"period_type":{"type":"number","description_kind":"plain","computed":true},"port_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_name":{"type":"string","description_kind":"plain","required":true},"provider_status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reason":{"type":"string","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region_id":{"type":"string","description_kind":"plain","computed":true},"service_key":{"type":"string","description_kind":"plain","computed":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vgw_type":{"type":"string","description_kind":"plain","computed":true},"vlan":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_app_v2":{"version":0,"block":{"attributes":{"commit_checkpoint_stream_names":{"type":["list","string"],"description_kind":"plain","computed":true},"created":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition_consuming_states":{"type":["list",["object",{"checkpoint_type":"string","earliest_offset":"number","id":"string","latest_offset":"number","sequence_number":"string","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_checkpoint_v2":{"version":0,"block":{"attributes":{"app_name":{"type":"string","description_kind":"plain","required":true},"checkpoint_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_id":{"type":"string","description_kind":"plain","required":true},"sequence_number":{"type":"string","description_kind":"plain","required":true},"stream_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_dump_task_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"destination":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_transfer_timestamp":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"partitions":{"type":["list",["object",{"hash_range":"string","id":"string","parent_partitions":"string","sequence_number_range":"string","status":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"stream_name":{"type":"string","description_kind":"plain","required":true},"task_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"obs_destination_descriptor":{"nesting_mode":"set","block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","required":true},"consumer_strategy":{"type":"string","description_kind":"plain","optional":true},"deliver_time_interval":{"type":"number","description_kind":"plain","required":true},"destination_file_type":{"type":"string","description_kind":"plain","optional":true},"file_prefix":{"type":"string","description_kind":"plain","optional":true},"obs_bucket_path":{"type":"string","description_kind":"plain","required":true},"partition_format":{"type":"string","description_kind":"plain","optional":true},"record_delimiter":{"type":"string","description_kind":"plain","optional":true},"task_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"obs_processing_schema":{"nesting_mode":"set","block":{"attributes":{"timestamp_format":{"type":"string","description_kind":"plain","optional":true},"timestamp_name":{"type":"string","description_kind":"plain","required":true},"timestamp_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_stream_v2":{"version":0,"block":{"attributes":{"auto_scale_max_partition_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"auto_scale_min_partition_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"compression_format":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"number","description_kind":"plain","computed":true},"data_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition_count":{"type":"number","description_kind":"plain","required":true},"partitions":{"type":["list",["object",{"hash_range":"string","id":"string","parent_partitions":"string","sequence_number_range":"string","status":"string"}]],"description_kind":"plain","computed":true},"readable_partition_count":{"type":"number","description_kind":"plain","computed":true},"retention_period":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"stream_id":{"type":"string","description_kind":"plain","computed":true},"stream_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"writable_partition_count":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_instance_v1":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true},"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"connect_address":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"partition_num":{"type":"number","description_kind":"plain","optional":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"product_id":{"type":"string","description_kind":"plain","required":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"retention_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_space":{"type":"number","description_kind":"plain","required":true},"storage_spec_code":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"used_storage_space":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_dms_instance_v2":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true},"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"connect_address":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_encrypted_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"disk_encrypted_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_publicip":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_num":{"type":"number","description_kind":"plain","computed":true},"partition_num":{"type":"number","description_kind":"plain","optional":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"product_id":{"type":"string","description_kind":"plain","required":true},"public_access_enabled":{"type":"string","description_kind":"plain","computed":true},"public_bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"public_connect_address":{"type":["list","string"],"description_kind":"plain","computed":true},"publicip_id":{"type":["list","string"],"description_kind":"plain","optional":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"retention_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_resource_id":{"type":"string","description_kind":"plain","computed":true},"storage_space":{"type":"number","description_kind":"plain","required":true},"storage_spec_code":{"type":"string","description_kind":"plain","required":true},"subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"total_storage_space":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"used_storage_space":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_topic_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_partitions":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition":{"type":"number","description_kind":"plain","optional":true,"computed":true},"remain_partitions":{"type":"number","description_kind":"plain","optional":true,"computed":true},"replication":{"type":"number","description_kind":"plain","optional":true,"computed":true},"retention_time":{"type":"number","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"sync_message_flush":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"sync_replication":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_user_permission_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"topic_name":{"type":"string","description_kind":"plain","required":true},"topic_type":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"policies":{"nesting_mode":"list","block":{"attributes":{"access_policy":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"bool","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"opentelekomcloud_dms_user_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"default_app":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"role":{"type":"string","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_dns_ptrrecord_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"floatingip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_recordset_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"records":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true},"zone_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_zone_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"email":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"masters":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"router":{"nesting_mode":"set","block":{"attributes":{"router_id":{"type":"string","description_kind":"plain","required":true},"router_region":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_drs_task_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"destination_db_readonly":{"type":"bool","description_kind":"plain","optional":true},"direction":{"type":"string","description_kind":"plain","required":true},"engine_type":{"type":"string","description_kind":"plain","required":true},"expired_days":{"type":"number","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"migrate_definer":{"type":"bool","description_kind":"plain","optional":true},"migration_type":{"type":"string","description_kind":"plain","optional":true},"multi_write":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"net_type":{"type":"string","description_kind":"plain","optional":true},"node_num":{"type":"number","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"destination_db":{"nesting_mode":"list","block":{"attributes":{"engine_type":{"type":"string","description_kind":"plain","required":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","required":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_cert_check_sum":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_key":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_name":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_password":{"type":"string","description_kind":"plain","optional":true},"ssl_enabled":{"type":"bool","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"limit_speed":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"speed":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":3},"source_db":{"nesting_mode":"list","block":{"attributes":{"engine_type":{"type":"string","description_kind":"plain","required":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","required":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_cert_check_sum":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_key":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_name":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_password":{"type":"string","description_kind":"plain","optional":true},"ssl_enabled":{"type":"bool","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dws_cluster_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_last_manual_snapshot":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"node_type":{"type":"string","description_kind":"plain","required":true},"number_of_cn":{"type":"number","description_kind":"plain","optional":true},"number_of_node":{"type":"number","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"private_ip":{"type":["list","string"],"description_kind":"plain","computed":true},"recent_event":{"type":"number","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"sub_status":{"type":"string","description_kind":"plain","computed":true},"task_status":{"type":"string","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","required":true},"user_pwd":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"endpoints":{"nesting_mode":"list","block":{"attributes":{"connect_info":{"type":"string","description_kind":"plain","computed":true},"jdbc_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"public_endpoints":{"nesting_mode":"list","block":{"attributes":{"jdbc_url":{"type":"string","description_kind":"plain","computed":true},"public_connect_info":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"public_ip":{"nesting_mode":"list","block":{"attributes":{"eip_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"public_bind_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ecs_instance_v1":{"version":0,"block":{"attributes":{"auto_recovery":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"delete_disks_on_termination":{"type":"bool","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"system_disk_id":{"type":"string","description_kind":"plain","computed":true},"system_disk_kms_id":{"type":"string","description_kind":"plain","optional":true},"system_disk_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"system_disk_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"volumes_attached":{"type":["list",["object",{"id":"string","kms_id":"string","size":"number","snapshot_id":"string","type":"string"}]],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"data_disks":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":23},"nics":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","computed":true},"network_id":{"type":"string","description_kind":"plain","required":true},"port_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":12},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_association_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","required":true},"attachment_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_instance_v3":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","required":true},"auto_accept_shared_attachments":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_association_route_table_id":{"type":"string","description_kind":"plain","computed":true},"default_propagation_route_table_id":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_default_association":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_default_propagation":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_propagation_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","required":true},"attachment_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_route_table_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"is_default_association":{"type":"bool","description_kind":"plain","computed":true},"is_default_propagation":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_static_route_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_blackhole":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_vpc_attachment_v3":{"version":0,"block":{"attributes":{"auto_create_vpc_routes":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_evs_volume_v3":{"version":0,"block":{"attributes":{"attachment":{"type":["set",["object",{"device":"string","id":"string","instance_id":"string"}]],"description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"backup_id":{"type":"string","description_kind":"plain","optional":true},"cascade":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"multiattach":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"wwn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fgs_async_invoke_config_v2":{"version":0,"block":{"attributes":{"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_async_event_age_in_seconds":{"type":"number","description_kind":"plain","required":true},"max_async_retry_attempts":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"on_failure":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"param":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"on_success":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"param":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_fgs_event_v2":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_fgs_function_v2":{"version":0,"block":{"attributes":{"agency":{"type":"string","description_kind":"plain","optional":true},"app":{"type":"string","description_kind":"plain","optional":true},"app_agency":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_filename":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_url":{"type":"string","description_kind":"plain","optional":true},"concurrency_num":{"type":"number","description_kind":"plain","optional":true,"computed":true},"depend_list":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"dns_list":{"type":"string","description_kind":"plain","computed":true},"encrypted_user_data":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"func_code":{"type":"string","description_kind":"plain","optional":true},"functiongraph_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"gpu_memory":{"type":"number","description_kind":"plain","optional":true},"gpu_type":{"type":"string","description_kind":"plain","computed":true},"handler":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initializer_handler":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initializer_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_topic_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_topic_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_instance_num":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory_size":{"type":"number","description_kind":"plain","required":true},"mount_user_group_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"mount_user_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"runtime":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"custom_image":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"func_mounts":{"nesting_mode":"list","block":{"attributes":{"local_mount_path":{"type":"string","description_kind":"plain","required":true},"mount_resource":{"type":"string","description_kind":"plain","required":true},"mount_share_path":{"type":"string","description_kind":"plain","required":true},"mount_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"reserved_instances":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"idle_mode":{"type":"bool","description_kind":"plain","optional":true},"qualifier_name":{"type":"string","description_kind":"plain","required":true},"qualifier_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"tactics_config":{"nesting_mode":"list","block":{"block_types":{"cron_configs":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"cron":{"type":"string","description_kind":"plain","required":true},"expired_time":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versions":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The version name.","description_kind":"plain","required":true}},"block_types":{"aliases":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fgs_trigger_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"event_data":{"type":"string","description_kind":"plain","required":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_firewall_group_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"egress_policy_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_policy_id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ports":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_policy_v2":{"version":0,"block":{"attributes":{"audited":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list","string"],"description_kind":"plain","optional":true},"shared":{"type":"bool","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_rule_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"destination_ip_address":{"type":"string","description_kind":"plain","optional":true},"destination_port":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_ip_address":{"type":"string","description_kind":"plain","optional":true},"source_port":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_gaussdb_mysql_instance_v3":{"version":0,"block":{"attributes":{"alias":{"type":"string","description_kind":"plain","computed":true},"availability_zone_mode":{"type":"string","description_kind":"plain","optional":true},"charging_mode":{"type":"string","description_kind":"plain","computed":true},"configuration_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"configuration_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"db_user_name":{"type":"string","description_kind":"plain","computed":true},"dedicated_resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"dedicated_resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_count":{"type":"number","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"az_code":"string","created":"string","flavor_ref":"string","id":"string","max_connections":"string","name":"string","need_restart":"bool","port":"number","priority":"number","private_read_ips":["list","string"],"ram":"string","region_code":"string","status":"string","type":"string","updated":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"private_write_ip":{"type":["list","string"],"description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"read_replicas":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"time_zone":{"type":"string","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"engine":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_identity_acl_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"ip_cidrs":{"nesting_mode":"set","block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":200},"ip_ranges":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"range":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":200}},"description_kind":"plain"}},"opentelekomcloud_identity_agency_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"delegated_domain_name":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_roles":{"type":["set","string"],"description_kind":"plain","optional":true},"duration":{"type":"string","description_kind":"plain","computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"project_role":{"nesting_mode":"set","block":{"attributes":{"project":{"type":"string","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_identity_credential_v3":{"version":0,"block":{"attributes":{"access":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_fingerprint":{"type":"string","description_kind":"plain","computed":true},"last_use_time":{"type":"string","description_kind":"plain","computed":true},"pgp_key":{"type":"string","description_kind":"plain","optional":true},"secret":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_membership_v3":{"version":0,"block":{"attributes":{"group":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"users":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_login_policy_v3":{"version":0,"block":{"attributes":{"account_validity_period":{"type":"number","description_kind":"plain","optional":true},"custom_info_for_login":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lockout_duration":{"type":"number","description_kind":"plain","optional":true,"computed":true},"login_failed_times":{"type":"number","description_kind":"plain","optional":true,"computed":true},"period_with_login_failures":{"type":"number","description_kind":"plain","optional":true,"computed":true},"session_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"show_recent_login_info":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_mapping_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"mapping_id":{"type":"string","description_kind":"plain","required":true},"rules":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_password_policy_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maximum_consecutive_identical_chars":{"type":"number","description_kind":"plain","optional":true,"computed":true},"maximum_password_length":{"type":"number","description_kind":"plain","computed":true},"minimum_password_age":{"type":"number","description_kind":"plain","optional":true,"computed":true},"minimum_password_length":{"type":"number","description_kind":"plain","optional":true},"number_of_recent_passwords_disallowed":{"type":"number","description_kind":"plain","optional":true},"password_not_username_or_invert":{"type":"bool","description_kind":"plain","optional":true},"password_requirements":{"type":"string","description_kind":"plain","computed":true},"password_validity_period":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_project_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_domain":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_protection_policy_v3":{"version":0,"block":{"attributes":{"enable_operation_protection_policy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_protocol_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"mapping_id":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"provider_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","required":true},"authorization_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true},"client_id":{"type":"string","description_kind":"plain","required":true},"provider_url":{"type":"string","description_kind":"plain","required":true},"response_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"response_type":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"signing_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"metadata":{"nesting_mode":"list","block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","required":true},"metadata":{"type":"string","description_kind":"plain","required":true},"xaccount_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_provider":{"version":0,"block":{"attributes":{"conversion_rules":{"type":["list",["object",{"local":["list",["object",{"group":"string","groups":"string","username":"string"}]],"remote":["list",["object",{"attribute":"string","condition":"string","value":["list","string"]}]]}]],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"login_link":{"type":"string","description_kind":"plain","computed":true},"mapping_rules":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","required":true},"authorization_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true},"client_id":{"type":"string","description_kind":"plain","required":true},"provider_url":{"type":"string","description_kind":"plain","required":true},"response_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"response_type":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"signing_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_provider_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"remote_ids":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_assignment_v3":{"version":0,"block":{"attributes":{"all_projects":{"type":"bool","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"role_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_v3":{"version":0,"block":{"attributes":{"catalog":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","required":true},"display_layer":{"type":"string","description_kind":"plain","required":true},"display_name":{"type":"string","description_kind":"plain","required":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"statement":{"nesting_mode":"list","block":{"attributes":{"action":{"type":["list","string"],"description_kind":"plain","required":true},"condition":{"type":"string","description_kind":"plain","optional":true},"effect":{"type":"string","description_kind":"plain","required":true},"resource":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_user_group_membership_v3":{"version":0,"block":{"attributes":{"groups":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_user_v3":{"version":0,"block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"country_code":{"type":"string","description_kind":"plain","optional":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_login":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"password_strength":{"type":"string","description_kind":"plain","computed":true},"phone":{"type":"string","description_kind":"plain","optional":true},"pwd_reset":{"type":"bool","description_kind":"plain","optional":true},"send_welcome_email":{"type":"bool","description_kind":"plain","optional":true},"xuser_id":{"type":"string","description_kind":"plain","computed":true},"xuser_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"login_protection":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"verification_method":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_images_image_access_accept_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"member_id":{"type":"string","description_kind":"plain","required":true},"schema":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_access_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"member_id":{"type":"string","description_kind":"plain","required":true},"schema":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_v2":{"version":0,"block":{"attributes":{"checksum":{"type":"string","description_kind":"plain","computed":true},"container_format":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"disk_format":{"type":"string","description_kind":"plain","required":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_cache_path":{"type":"string","description_kind":"plain","optional":true},"image_source_url":{"type":"string","description_kind":"plain","optional":true},"local_file_path":{"type":"string","description_kind":"plain","optional":true},"min_disk_gb":{"type":"number","description_kind":"plain","optional":true},"min_ram_mb":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"protected":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"schema":{"type":"string","description_kind":"plain","computed":true},"size_bytes":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description_kind":"plain","optional":true},"update_at":{"type":"string","description_kind":"plain","computed":true},"visibility":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ims_data_image_v2":{"version":0,"block":{"attributes":{"cmk_id":{"type":"string","description_kind":"plain","optional":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_size":{"type":"string","description_kind":"plain","computed":true},"image_url":{"type":"string","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ims_image_v2":{"version":0,"block":{"attributes":{"cmk_id":{"type":"string","description_kind":"plain","optional":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_size":{"type":"string","description_kind":"plain","computed":true},"image_url":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"is_config":{"type":"bool","description_kind":"plain","optional":true},"max_ram":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_version":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_kms_grant_v1":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"grantee_principal":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuing_principal":{"type":"string","description_kind":"plain","computed":true},"key_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"operations":{"type":["set","string"],"description_kind":"plain","optional":true},"retiring_principal":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_kms_key_v1":{"version":0,"block":{"attributes":{"allow_cancel_deletion":{"type":"bool","description_kind":"plain","optional":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"default_key_flag":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"key_alias":{"type":"string","description_kind":"plain","required":true},"key_description":{"type":"string","description_kind":"plain","optional":true},"origin":{"type":"string","description_kind":"plain","computed":true},"pending_days":{"type":"string","description_kind":"plain","optional":true},"realm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rotation_enabled":{"type":"bool","description_kind":"plain","optional":true},"rotation_interval":{"type":"number","description_kind":"plain","optional":true,"computed":true},"rotation_number":{"type":"number","description_kind":"plain","computed":true},"scheduled_deletion_date":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v2":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","required":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"private_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v3":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"private_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_ipgroup_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listeners":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"ip_list":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_l7policy_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"position":{"type":"number","description_kind":"plain","optional":true,"computed":true},"redirect_listener_id":{"type":"string","description_kind":"plain","optional":true},"redirect_pool_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_l7rule_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"compare_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true},"l7policy_id":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true},"transparent_client_ip_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"block_types":{"ip_group":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"advanced_forwarding":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"client_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_alive_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","required":true},"member_retry_enable":{"type":"bool","description_kind":"plain","optional":true},"member_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"security_policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","optional":true},"sni_match_algo":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"insert_headers":{"nesting_mode":"list","block":{"attributes":{"forward_elb_ip":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_for_port":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_host":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_port":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"ip_group":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_provider":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true},"vip_subnet_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["set","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_target_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"l4_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"l7_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_ids":{"type":["set","string"],"description_kind":"plain","required":true},"router_id":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"public_ip":{"nesting_mode":"list","block":{"attributes":{"_managed":{"type":"bool","description_kind":"plain","computed":true},"address":{"type":"string","description_kind":"plain","computed":true},"bandwidth_charge_mode":{"type":"string","description_kind":"plain","optional":true},"bandwidth_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_share_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_member_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_member_v3":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description_kind":"plain","computed":true},"member_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"operating_status":{"type":"string","description_kind":"plain","computed":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_monitor_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"delay":{"type":"number","description_kind":"plain","required":true},"domain_name":{"type":"string","description_kind":"plain","optional":true},"expected_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"http_method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_retries":{"type":"number","description_kind":"plain","required":true},"monitor_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"url_path":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_monitor_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"delay":{"type":"number","description_kind":"plain","required":true},"domain_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expected_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"http_method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_retries":{"type":"number","description_kind":"plain","required":true},"max_retries_down":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitor_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"url_path":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_policy_v3":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redirect_listener_id":{"type":"string","description_kind":"plain","optional":true},"redirect_pool_id":{"type":"string","description_kind":"plain","optional":true},"redirect_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"fixed_response_config":{"nesting_mode":"set","block":{"attributes":{"content_type":{"type":"string","description_kind":"plain","optional":true},"message_body":{"type":"string","description_kind":"plain","optional":true},"status_code":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"redirect_pools_config":{"nesting_mode":"set","block":{"attributes":{"pool_id":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"redirect_url_config":{"nesting_mode":"set","block":{"attributes":{"host":{"type":"string","description_kind":"plain","optional":true},"path":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"query":{"type":"string","description_kind":"plain","optional":true},"status_code":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"rules":{"nesting_mode":"set","block":{"attributes":{"compare_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":10}},"description_kind":"plain"}},"opentelekomcloud_lb_pool_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_method":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"persistence":{"nesting_mode":"list","block":{"attributes":{"cookie_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_pool_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description_kind":"plain","computed":true},"lb_algorithm":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member_deletion_protection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"session_persistence":{"nesting_mode":"list","block":{"attributes":{"cookie_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"persistence_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_rule_v3":{"version":0,"block":{"attributes":{"compare_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rule_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"conditions":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_security_policy_v3":{"version":0,"block":{"attributes":{"ciphers":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"protocols":{"type":["list","string"],"description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_whitelist_v2":{"version":0,"block":{"attributes":{"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"whitelist":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_group_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"group_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ttl_in_days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_topic_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_transfer_v2":{"version":0,"block":{"attributes":{"create_time":{"type":"number","description_kind":"plain","computed":true},"dir_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","required":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_stream_ids":{"type":["set","string"],"description_kind":"plain","required":true},"log_transfer_mode":{"type":"string","description_kind":"plain","computed":true},"log_transfer_type":{"type":"string","description_kind":"plain","computed":true},"obs_bucket_name":{"type":"string","description_kind":"plain","required":true},"obs_encryption_enable":{"type":"bool","description_kind":"plain","computed":true},"obs_encryption_id":{"type":"string","description_kind":"plain","computed":true},"period":{"type":"number","description_kind":"plain","required":true},"period_unit":{"type":"string","description_kind":"plain","required":true},"prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_format":{"type":"string","description_kind":"plain","required":true},"switch_on":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_mrs_cluster_v1":{"version":0,"block":{"attributes":{"available_zone_id":{"type":"string","description_kind":"plain","required":true},"available_zone_name":{"type":"string","description_kind":"plain","computed":true},"billing_type":{"type":"number","description_kind":"plain","required":true},"charging_start_time":{"type":"string","description_kind":"plain","computed":true},"cluster_admin_secret":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"cluster_state":{"type":"string","description_kind":"plain","computed":true},"cluster_type":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cluster_version":{"type":"string","description_kind":"plain","required":true},"core_data_volume_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"core_data_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"core_data_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"core_node_num":{"type":"number","description_kind":"plain","required":true},"core_node_product_id":{"type":"string","description_kind":"plain","computed":true},"core_node_size":{"type":"string","description_kind":"plain","required":true},"core_node_spec_id":{"type":"string","description_kind":"plain","computed":true},"create_at":{"type":"string","description_kind":"plain","computed":true},"deployment_id":{"type":"string","description_kind":"plain","computed":true},"error_info":{"type":"string","description_kind":"plain","computed":true},"external_alternate_ip":{"type":"string","description_kind":"plain","computed":true},"external_ip":{"type":"string","description_kind":"plain","computed":true},"fee":{"type":"string","description_kind":"plain","computed":true},"hadoop_version":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","computed":true},"internal_ip":{"type":"string","description_kind":"plain","computed":true},"log_collection":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_node_ip":{"type":"string","description_kind":"plain","computed":true},"master_node_num":{"type":"number","description_kind":"plain","required":true},"master_node_product_id":{"type":"string","description_kind":"plain","computed":true},"master_node_size":{"type":"string","description_kind":"plain","required":true},"master_node_spec_id":{"type":"string","description_kind":"plain","computed":true},"node_public_cert_name":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"private_ip_first":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remark":{"type":"string","description_kind":"plain","computed":true},"safe_mode":{"type":"number","description_kind":"plain","required":true},"security_groups_id":{"type":"string","description_kind":"plain","computed":true},"slave_security_groups_id":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"update_at":{"type":"string","description_kind":"plain","computed":true},"vnc":{"type":"string","description_kind":"plain","computed":true},"volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"add_jobs":{"nesting_mode":"list","block":{"attributes":{"arguments":{"type":"string","description_kind":"plain","optional":true,"computed":true},"file_action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"hive_script_path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"hql":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input":{"type":"string","description_kind":"plain","optional":true,"computed":true},"jar_path":{"type":"string","description_kind":"plain","required":true},"job_log":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_name":{"type":"string","description_kind":"plain","required":true},"job_type":{"type":"number","description_kind":"plain","required":true},"output":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shutdown_cluster":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"submit_job_once_cluster_run":{"type":"bool","description_kind":"plain","required":true}},"description_kind":"plain"}},"bootstrap_scripts":{"nesting_mode":"list","block":{"attributes":{"active_master":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"before_component_start":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"fail_action":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list","string"],"description_kind":"plain","required":true},"parameters":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uri":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"component_list":{"nesting_mode":"set","block":{"attributes":{"component_desc":{"type":"string","description_kind":"plain","computed":true},"component_id":{"type":"string","description_kind":"plain","computed":true},"component_name":{"type":"string","description_kind":"plain","required":true},"component_version":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_mrs_job_v1":{"version":0,"block":{"attributes":{"arguments":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"hive_script_path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_protected":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"jar_path":{"type":"string","description_kind":"plain","required":true},"job_log":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_name":{"type":"string","description_kind":"plain","required":true},"job_state":{"type":"string","description_kind":"plain","computed":true},"job_type":{"type":"number","description_kind":"plain","required":true},"output":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_dnat_rule_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"external_service_port":{"type":"number","description_kind":"plain","required":true},"floating_ip_address":{"type":"string","description_kind":"plain","computed":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_service_port":{"type":"number","description_kind":"plain","required":true},"nat_gateway_id":{"type":"string","description_kind":"plain","required":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_gateway_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_network_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"spec":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_snat_rule_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_gateway_id":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_type":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_floatingip_associate_v2":{"version":0,"block":{"attributes":{"floating_ip":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_networking_floatingip_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_network_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"segments":{"nesting_mode":"list","block":{"attributes":{"network_type":{"type":"string","description_kind":"plain","optional":true},"physical_network":{"type":"string","description_kind":"plain","optional":true},"segmentation_id":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_port_secgroup_associate_v2":{"version":0,"block":{"attributes":{"all_security_group_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"force":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"all_fixed_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_owner":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_security_groups":{"type":"bool","description_kind":"plain","optional":true},"port_security_enabled":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"allowed_address_pairs":{"nesting_mode":"set","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","required":true},"mac_address":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"extra_dhcp_option":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"fixed_ip":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_router_interface_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_router_route_v2":{"version":0,"block":{"attributes":{"destination_cidr":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"next_hop":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_networking_router_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"distributed":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_snat":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"external_gateway":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_rule_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"direction":{"type":"string","description_kind":"plain","required":true},"ethertype":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_range_max":{"type":"number","description_kind":"plain","optional":true},"port_range_min":{"type":"number","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remote_group_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remote_ip_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_v2":{"version":0,"block":{"attributes":{"delete_default_rules":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_subnet_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"dns_nameservers":{"type":["set","string"],"description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description_kind":"plain","optional":true},"gateway_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_gateway":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"allocation_pools":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"string","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"host_routes":{"nesting_mode":"list","block":{"attributes":{"destination_cidr":{"type":"string","description_kind":"plain","required":true},"next_hop":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_vip_associate_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_ids":{"type":["set","string"],"description_kind":"plain","required":true},"vip_id":{"type":"string","description_kind":"plain","required":true},"vip_ip_address":{"type":"string","description_kind":"plain","computed":true},"vip_subnet_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_networking_vip_v2":{"version":0,"block":{"attributes":{"device_owner":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"bucket_version":{"type":"string","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parallel_fs":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"storage_class":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_domain_names":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"versioning":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_notifications":{"nesting_mode":"list","block":{"attributes":{"events":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"filter_rule":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"noncurrent_version_expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"noncurrent_version_transition":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true},"storage_class":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"transition":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true},"storage_class":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"logging":{"nesting_mode":"set","block":{"attributes":{"target_bucket":{"type":"string","description_kind":"plain","required":true},"target_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"server_side_encryption":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","required":true},"kms_key_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"error_document":{"type":"string","description_kind":"plain","optional":true},"index_document":{"type":"string","description_kind":"plain","optional":true},"redirect_all_requests_to":{"type":"string","description_kind":"plain","optional":true},"routing_rules":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"worm_policy":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","optional":true},"years":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_inventory":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"configuration_id":{"type":"string","description_kind":"plain","required":true},"filter_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"frequency":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"included_object_versions":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"format":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_object":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true},"encryption":{"type":"bool","description_kind":"plain","optional":true},"etag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","computed":true},"source":{"type":"string","description_kind":"plain","optional":true},"storage_class":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_replication":{"version":0,"block":{"attributes":{"agency":{"type":"string","description_kind":"plain","required":true},"bucket":{"type":"string","description_kind":"plain","required":true},"destination_bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"delete_data":{"type":"bool","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"history_enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"prefix":{"type":"string","description_kind":"plain","optional":true},"storage_class":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rds_backup_v3":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","computed":true},"begin_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"databases":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rds_instance_v1":{"version":0,"block":{"attributes":{"availabilityzone":{"type":"string","description_kind":"plain","required":true},"created":{"type":"string","description_kind":"plain","computed":true},"dbport":{"type":"string","description_kind":"plain","optional":true},"dbrtpd":{"type":"string","description_kind":"plain","required":true},"flavorref":{"type":"string","description_kind":"plain","required":true},"hostname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tag":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true},"vpc":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backupstrategy":{"nesting_mode":"list","block":{"attributes":{"keepdays":{"type":"number","description_kind":"plain","optional":true},"starttime":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"ha":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true},"replicationmode":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"nics":{"nesting_mode":"list","block":{"attributes":{"subnetid":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"securitygroup":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"size":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_rds_instance_v3":{"version":0,"block":{"attributes":{"autoscaling_enabled":{"type":"bool","description_kind":"plain","computed":true},"availability_zone":{"type":["list","string"],"description_kind":"plain","required":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"ha_replication_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lower_case_table_names":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"availability_zone":"string","id":"string","name":"string","role":"string","status":"string"}]],"description_kind":"plain","computed":true},"param_group_id":{"type":"string","description_kind":"plain","optional":true},"parameters":{"type":["map","string"],"description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"restored_backup_id":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tag":{"type":["map","string"],"description_kind":"plain","deprecated":true,"optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"db":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"restore_from_backup":{"nesting_mode":"list","block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"restore_time":{"type":"number","description_kind":"plain","optional":true},"source_instance_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"restore_point":{"nesting_mode":"list","block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"restore_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_size":{"type":"number","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"trigger_threshold":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rds_maintenance_v3":{"version":0,"block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rds_parametergroup_v3":{"version":0,"block":{"attributes":{"configuration_parameters":{"type":["list",["object",{"description":"string","name":"string","readonly":"bool","restart_required":"bool","type":"string","value":"string","value_range":"string"}]],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"updated":{"type":"string","description_kind":"plain","computed":true},"values":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rds_read_replica_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"db":{"type":["list",["object",{"port":"number","type":"string","user_name":"string","version":"string"}]],"description_kind":"plain","computed":true},"flavor_ref":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_ips":{"type":["set","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"replica_of_id":{"type":"string","description_kind":"plain","required":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rts_software_config_v1":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","optional":true},"group":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_values":{"type":["list",["map","string"]],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"options":{"type":["map","string"],"description_kind":"plain","optional":true},"output_values":{"type":["list",["map","string"]],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rts_software_deployment_v1":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"config_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_values":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"output_values":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status_reason":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_v1":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description_kind":"plain","computed":true},"disable_rollback":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"environment":{"type":"string","description_kind":"plain","optional":true},"files":{"type":["map","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"notification_topics":{"type":["set","string"],"description_kind":"plain","computed":true},"outputs":{"type":["map","string"],"description_kind":"plain","computed":true},"parameters":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"status_reason":{"type":"string","description_kind":"plain","computed":true},"template_body":{"type":"string","description_kind":"plain","optional":true,"computed":true},"template_url":{"type":"string","description_kind":"plain","optional":true},"timeout_mins":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"arn":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bucket":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"bucket_prefix":{"type":"string","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"hosted_zone_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"website_domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"abort_incomplete_multipart_upload_days":{"type":"number","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"set","block":{"attributes":{"date":{"type":"string","description_kind":"plain","optional":true},"days":{"type":"number","description_kind":"plain","optional":true},"expired_object_delete_marker":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"noncurrent_version_expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"logging":{"nesting_mode":"set","block":{"attributes":{"target_bucket":{"type":"string","description_kind":"plain","required":true},"target_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true},"mfa_delete":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"error_document":{"type":"string","description_kind":"plain","optional":true},"index_document":{"type":"string","description_kind":"plain","optional":true},"redirect_all_requests_to":{"type":"string","description_kind":"plain","optional":true},"routing_rules":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_object":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","optional":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description_kind":"plain","optional":true},"content_language":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"etag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"server_side_encryption":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source":{"type":"string","description_kind":"plain","optional":true},"sse_kms_key_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version_id":{"type":"string","description_kind":"plain","computed":true},"website_redirect":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_sdrs_protected_instance_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"delete_target_eip":{"type":"bool","description_kind":"plain","optional":true},"delete_target_server":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"priority_station":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"target_id":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_protectiongroup_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","required":true},"dr_type":{"type":"string","description_kind":"plain","optional":true},"enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"source_availability_zone":{"type":"string","description_kind":"plain","required":true},"source_vpc_id":{"type":"string","description_kind":"plain","required":true},"target_availability_zone":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_replication_attach_v1":{"version":0,"block":{"attributes":{"device":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"replication_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_replication_pair_v1":{"version":0,"block":{"attributes":{"delete_target_volume":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fault_level":{"type":"string","description_kind":"plain","computed":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"replication_model":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"target_volume_id":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sfs_file_system_v2":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"access_rule_status":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"access_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"host":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","optional":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sfs_share_access_rules_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_rule":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","required":true},"access_rule_status":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","required":true},"access_type":{"type":"string","description_kind":"plain","optional":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":20}},"description_kind":"plain"}},"opentelekomcloud_sfs_turbo_share_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","required":true},"available_capacity":{"type":"string","description_kind":"plain","computed":true},"crypt_key_id":{"type":"string","description_kind":"plain","optional":true},"enhanced":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"expand_type":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"share_proto":{"type":"string","description_kind":"plain","optional":true},"share_type":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_smn_subscription_v2":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"remark":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"number","description_kind":"plain","computed":true},"subscription_urn":{"type":"string","description_kind":"plain","computed":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_smn_topic_attribute_v2":{"version":0,"block":{"attributes":{"attribute_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_attribute":{"type":"string","description_kind":"plain","required":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_smn_topic_v2":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"push_policy":{"type":"number","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"topic_urn":{"type":"string","description_kind":"plain","computed":true},"update_time":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_swr_domain_v2":{"version":0,"block":{"attributes":{"access_domain":{"type":"string","description_kind":"plain","required":true},"created":{"type":"string","description_kind":"plain","computed":true},"creator_id":{"type":"string","description_kind":"plain","computed":true},"creator_name":{"type":"string","description_kind":"plain","computed":true},"deadline":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"permission":{"type":"string","description_kind":"plain","required":true},"repository":{"type":"string","description_kind":"plain","required":true},"status":{"type":"bool","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_organization_permissions_v2":{"version":0,"block":{"attributes":{"auth":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_organization_v2":{"version":0,"block":{"attributes":{"auth":{"type":"number","description_kind":"plain","computed":true},"creator_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"organization_id":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_repository_v2":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_path":{"type":"string","description_kind":"plain","computed":true},"is_public":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"num_images":{"type":"number","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","computed":true},"repository_id":{"type":"number","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_tms_tags_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"tags":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_policy_v2":{"version":0,"block":{"attributes":{"frequency":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_resource_count":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rentention_day":{"type":"number","description_kind":"plain","optional":true},"rentention_num":{"type":"number","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description_kind":"plain","optional":true},"retain_first_backup":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true},"week_frequency":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_share_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"backup_id":{"type":"string","description_kind":"plain","required":true},"backup_name":{"type":"string","description_kind":"plain","computed":true},"backup_status":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"share_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","computed":true},"to_project_ids":{"type":["set","string"],"description_kind":"plain","required":true},"volume_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth_associate_v2":{"version":0,"block":{"attributes":{"backup_charge_mode":{"type":"string","description_kind":"plain","optional":true},"backup_size":{"type":"number","description_kind":"plain","optional":true},"bandwidth":{"type":"string","description_kind":"plain","required":true},"floating_ips":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_eip_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"unbind_port":{"type":"bool","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"bandwidth":{"nesting_mode":"list","block":{"attributes":{"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"share_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"publicip":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_flow_log_v1":{"version":0,"block":{"attributes":{"admin_state":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","required":true},"log_topic_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"resource_id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_accepter_v2":{"version":0,"block":{"attributes":{"accept":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"peer_tenant_id":{"type":"string","description_kind":"plain","computed":true},"peer_vpc_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true},"vpc_peering_connection_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"peer_tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_vpc_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_table_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnets":{"type":["set","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"route":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"destination":{"type":"string","description_kind":"plain","required":true},"nexthop":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":200},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_v2":{"version":0,"block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nexthop":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cidr":{"type":"string","description_kind":"plain","required":true},"cidr_ipv6":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"dhcp_enable":{"type":"bool","description_kind":"plain","optional":true},"dns_list":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"gateway_ip":{"type":"string","description_kind":"plain","required":true},"gateway_ipv6":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6_enable":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"ntp_addresses":{"type":"string","description_kind":"plain","optional":true},"primary_dns":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_dns":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_v1":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_cidr":{"type":"string","description_kind":"plain","optional":true},"shared":{"type":"bool","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpcep_endpoint_v1":{"version":0,"block":{"attributes":{"dns_names":{"type":["set","string"],"description_kind":"plain","computed":true},"enable_dns":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"marker_id":{"type":"number","description_kind":"plain","computed":true},"port_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"route_tables":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"whitelist":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpcep_service_v1":{"version":0,"block":{"attributes":{"approval_enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"server_type":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"tcp_proxy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"whitelist":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"port":{"nesting_mode":"set","block":{"attributes":{"client_port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"server_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":200},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_endpoint_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_ike_policy_v2":{"version":0,"block":{"attributes":{"auth_algorithm":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ike_version":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"pfs":{"type":"string","description_kind":"plain","optional":true},"phase1_negotiation_mode":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"lifetime":{"nesting_mode":"set","block":{"attributes":{"units":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_ipsec_policy_v2":{"version":0,"block":{"attributes":{"auth_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"encapsulation_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pfs":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"transform_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"lifetime":{"nesting_mode":"set","block":{"attributes":{"units":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_service_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"external_v4_ip":{"type":"string","description_kind":"plain","computed":true},"external_v6_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_site_connection_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ikepolicy_id":{"type":"string","description_kind":"plain","required":true},"initiator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipsecpolicy_id":{"type":"string","description_kind":"plain","required":true},"local_ep_group_id":{"type":"string","description_kind":"plain","optional":true},"local_id":{"type":"string","description_kind":"plain","optional":true},"mtu":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"peer_address":{"type":"string","description_kind":"plain","required":true},"peer_cidrs":{"type":["list","string"],"description_kind":"plain","optional":true},"peer_ep_group_id":{"type":"string","description_kind":"plain","optional":true},"peer_id":{"type":"string","description_kind":"plain","required":true},"psk":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true},"vpnservice_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dpd":{"nesting_mode":"set","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interval":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_alarm_notification_v1":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"locale":{"type":"string","description_kind":"plain","optional":true,"computed":true},"send_frequency":{"type":"number","description_kind":"plain","required":true},"threat":{"type":["set","string"],"description_kind":"plain","required":true},"times":{"type":"number","description_kind":"plain","required":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_waf_ccattackprotection_rule_v1":{"version":0,"block":{"attributes":{"action_category":{"type":"string","description_kind":"plain","required":true},"block_content":{"type":"string","description_kind":"plain","optional":true},"block_content_type":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_num":{"type":"number","description_kind":"plain","required":true},"limit_period":{"type":"number","description_kind":"plain","required":true},"lock_time":{"type":"number","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"tag_category":{"type":"string","description_kind":"plain","optional":true},"tag_contents":{"type":["list","string"],"description_kind":"plain","optional":true},"tag_index":{"type":"string","description_kind":"plain","optional":true},"tag_type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_certificate_v1":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_datamasking_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_alarm_masking_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domains":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"rule":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"advanced_settings":{"nesting_mode":"list","block":{"attributes":{"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_anti_crawler_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logic":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"protection_mode":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_anti_leakage_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_blacklist_rule_v1":{"version":0,"block":{"attributes":{"action":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"followed_action_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_cc_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_num":{"type":"number","description_kind":"plain","required":true},"limit_period":{"type":"number","description_kind":"plain","required":true},"lock_time":{"type":"number","description_kind":"plain","optional":true},"mode":{"type":"number","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"tag_category":{"type":"string","description_kind":"plain","optional":true},"tag_contents":{"type":["list","string"],"description_kind":"plain","optional":true},"tag_index":{"type":"string","description_kind":"plain","optional":true},"tag_type":{"type":"string","description_kind":"plain","required":true},"unlock_num":{"type":"number","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","required":true},"value_list_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_certificate_v1":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_data_masking_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_domain_v1":{"version":0,"block":{"attributes":{"access_status":{"type":"number","description_kind":"plain","computed":true},"alarm_page":{"type":["map","string"],"description_kind":"plain","computed":true},"certificate_id":{"type":"string","description_kind":"plain","optional":true},"certificate_name":{"type":"string","description_kind":"plain","computed":true},"cipher":{"type":"string","description_kind":"plain","optional":true,"computed":true},"compliance_certification":{"type":["map","bool"],"description_kind":"plain","computed":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_policy":{"type":"bool","description_kind":"plain","optional":true},"pci_3ds":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pci_dss":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protect_status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","computed":true},"proxy":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tls":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_identifier":{"type":["map","string"],"description_kind":"plain","computed":true}},"block_types":{"server":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"client_protocol":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"server_protocol":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":80},"timeout_config":{"nesting_mode":"list","block":{"attributes":{"connect_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"read_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"send_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_geo_ip_rule_v1":{"version":0,"block":{"attributes":{"action":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"region_code":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_instance_v1":{"version":0,"block":{"attributes":{"access_status":{"type":"number","description_kind":"plain","computed":true},"architecture":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"billing_status":{"type":"number","description_kind":"plain","computed":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"res_tenant":{"type":"bool","description_kind":"plain","optional":true},"security_group":{"type":["list","string"],"description_kind":"plain","required":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"service_ip":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"upgradable":{"type":"bool","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_known_attack_source_rule_v1":{"version":0,"block":{"attributes":{"block_time":{"type":"number","description_kind":"plain","required":true},"category":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_policy_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"deep_inspection":{"type":"bool","description_kind":"plain","optional":true},"domains":{"type":["list","string"],"description_kind":"plain","computed":true},"full_detection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"header_inspection":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"level":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"protection_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shiro_decryption_check":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"options":{"nesting_mode":"list","block":{"attributes":{"anti_crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"anti_leakage":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"anti_tamper":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"blacklist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"bot_enable":{"type":"bool","description_kind":"plain","computed":true},"cc":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"common":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_engine":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_other":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_scanner":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_script":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"custom":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"followed_action":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"geolocation_access_control":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ignore":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"precise":{"type":"bool","description_kind":"plain","computed":true},"privacy":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"web_attack":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"web_shell":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_precise_protection_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"priority":{"type":"number","description_kind":"plain","required":true},"start":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"number","description_kind":"plain","computed":true},"terminal":{"type":"number","description_kind":"plain","optional":true},"time":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"followed_action_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","optional":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","optional":true},"value_list_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_reference_table_v1":{"version":0,"block":{"attributes":{"conditions":{"type":["list","string"],"description":"schema: Required","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_web_tamper_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"update_cache":{"type":"bool","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_domain_v1":{"version":0,"block":{"attributes":{"access_code":{"type":"string","description_kind":"plain","computed":true},"access_status":{"type":"number","description_kind":"plain","computed":true},"certificate_id":{"type":"string","description_kind":"plain","optional":true},"cipher":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cname":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protect_status":{"type":"number","description_kind":"plain","computed":true},"protocol":{"type":"string","description_kind":"plain","computed":true},"proxy":{"type":"bool","description_kind":"plain","required":true},"sip_header_list":{"type":["list","string"],"description_kind":"plain","optional":true},"sip_header_name":{"type":"string","description_kind":"plain","optional":true},"sub_domain":{"type":"string","description_kind":"plain","computed":true},"tls":{"type":"string","description_kind":"plain","optional":true,"computed":true},"txt_code":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"block_page":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description_kind":"plain","optional":true,"computed":true},"content_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redirect_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status_code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"template":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"server":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"back_protocol":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"client_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true},"front_protocol":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"server_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_falsealarmmasking_rule_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"rule":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_waf_policy_v1":{"version":0,"block":{"attributes":{"full_detection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"hosts":{"type":["list","string"],"description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"level":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"options":{"nesting_mode":"list","block":{"attributes":{"antitamper":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"cc":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"common":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_engine":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_other":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_scanner":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_script":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"custom":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ignore":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"privacy":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"webattack":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"webshell":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"whiteblackip":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_preciseprotection_rule_v1":{"version":0,"block":{"attributes":{"action_category":{"type":"string","description_kind":"plain","required":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"priority":{"type":"number","description_kind":"plain","optional":true},"start":{"type":"string","description_kind":"plain","optional":true,"computed":true},"time":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","required":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_webtamperprotection_rule_v1":{"version":0,"block":{"attributes":{"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_whiteblackip_rule_v1":{"version":0,"block":{"attributes":{"addr":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"white":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"opentelekomcloud_antiddos_v1":{"version":0,"block":{"attributes":{"bps_attack":{"type":["set","number"],"description_kind":"plain","computed":true},"bps_in":{"type":["set","number"],"description_kind":"plain","computed":true},"end_time":{"type":["set","number"],"description_kind":"plain","computed":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_type":{"type":"string","description_kind":"plain","computed":true},"period_start":{"type":["set","number"],"description_kind":"plain","computed":true},"pps_attack":{"type":["set","number"],"description_kind":"plain","computed":true},"pps_in":{"type":["set","number"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":["set","number"],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"total_bps":{"type":["set","number"],"description_kind":"plain","computed":true},"total_pps":{"type":["set","number"],"description_kind":"plain","computed":true},"traffic_cleaning_status":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_bps":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_http_pps":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_pps":{"type":["set","number"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_history_v2":{"version":0,"block":{"attributes":{"api_id":{"type":"string","description_kind":"plain","required":true},"environment_id":{"type":"string","description_kind":"plain","optional":true},"environment_name":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"history":{"type":["list",["object",{"description":"string","id":"string","name":"string","publish_time":"string","status":"number"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_cbr_backup_ids_v3":{"version":0,"block":{"attributes":{"checkpoint_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"image_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_az":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vault_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cbr_backup_v3":{"version":0,"block":{"attributes":{"auto_trigger":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"bootable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"checkpoint_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"contain_system_disk":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"expired_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"incremental":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_az":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"support_lld":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"supported_restore_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"system_disk":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vault_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_template_v3":{"version":0,"block":{"attributes":{"addon_name":{"type":"string","description_kind":"plain","required":true},"addon_version":{"type":"string","description_kind":"plain","required":true},"cluster_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_versions":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"swr_addr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"swr_user":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_templates_v3":{"version":0,"block":{"attributes":{"addon_name":{"type":"string","description_kind":"plain","required":true},"addons":{"type":["list",["object",{"addon_version":"string","cluster_ip":"string","euleros_version":"string","image_version":"string","obs_url":"string","platform":"string","swr_addr":"string","swr_user":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","optional":true},"cluster_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_kubeconfig_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"duration":{"type":"number","description_kind":"plain","optional":true},"expiry_date":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_v3":{"version":0,"block":{"attributes":{"authentication_mode":{"type":"string","description_kind":"plain","computed":true},"billing_mode":{"type":"number","description_kind":"plain","computed":true},"certificate_clusters":{"type":["list",["object",{"certificate_authority_data":"string","name":"string","server":"string"}]],"description_kind":"plain","computed":true},"certificate_users":{"type":["list",["object",{"client_certificate_data":"string","client_key_data":"string","name":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","optional":true},"cluster_version":{"type":"string","description_kind":"plain","computed":true},"container_network_cidr":{"type":"string","description_kind":"plain","computed":true},"container_network_type":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"eni_subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"eni_subnet_id":{"type":"string","description_kind":"plain","computed":true},"external":{"type":"string","description_kind":"plain","computed":true},"external_otc":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"highway_subnet_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_cce_node_ids_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_node_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","computed":true},"billing_mode":{"type":"number","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"data_volumes":{"type":["list",["object",{"disk_size":"number","extend_params":["map","string"],"kms_id":"string","volume_type":"string"}]],"description_kind":"plain","computed":true},"disk_size":{"type":"number","description_kind":"plain","computed":true},"eip_count":{"type":"number","description_kind":"plain","computed":true},"eip_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_type":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"node_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_availability_zones_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_flavors_v2":{"version":0,"block":{"attributes":{"disk":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rx_tx_factor":{"type":"number","description_kind":"plain","computed":true},"sort_dir":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"swap":{"type":"number","description_kind":"plain","computed":true},"vcpus":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_keypairs_v2":{"version":0,"block":{"attributes":{"fingerprint":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_nic_v2":{"version":0,"block":{"attributes":{"fixed_ips":{"type":["list",["object",{"ip_address":"string","subnet_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"mac_address":{"type":"string","description_kind":"plain","computed":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_server_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"config_drive":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"host_id":{"type":"string","description_kind":"plain","computed":true},"host_status":{"type":"string","description_kind":"plain","optional":true},"hypervisor_hostname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_name":{"type":"string","description_kind":"plain","computed":true},"kernel_id":{"type":"string","description_kind":"plain","computed":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"locked":{"type":"bool","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network":{"type":["list",["object",{"ip":"string","mac":"string","name":"string","type":"string","version":"number"}]],"description_kind":"plain","computed":true},"progress":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["list",["object",{"name":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_flavor_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"disk":{"type":"number","description_kind":"plain","optional":true},"extra_specs":{"type":["map","string"],"description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ram":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"rx_tx_factor":{"type":"number","description_kind":"plain","optional":true},"swap":{"type":"number","description_kind":"plain","optional":true},"vcpus":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_instance_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"admin_pass":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"encrypted_password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","computed":true},"image_name":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"power_state":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","computed":true},"ssh_private_key_path":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"network":{"nesting_mode":"list","block":{"attributes":{"fixed_ip_v4":{"type":"string","description_kind":"plain","computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"string","description_kind":"plain","computed":true},"uuid":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_instances_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"instances":{"type":["list",["object",{"availability_zone":"string","description":"string","flavor_id":"string","id":"string","image_id":"string","image_name":"string","key_pair":"string","name":"string","network":["list",["object",{"fixed_ip_v4":"string","fixed_ip_v6":"string","mac":"string","name":"string","port":"string","uuid":"string"}]],"project_id":"string","public_ip":"string","security_groups_ids":["list","string"],"status":"string","system_disk_id":"string","tags":["map","string"],"user_data":"string"}]],"description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"limit":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_keypair_v2":{"version":0,"block":{"attributes":{"fingerprint":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_policy_v1":{"version":0,"block":{"attributes":{"common":{"type":["map","string"],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource":{"type":["set",["object",{"id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"scheduled_operation":{"type":["set",["object",{"description":"string","enabled":"bool","id":"string","max_backups":"number","name":"string","operation_type":"string","permanent":"bool","retention_duration_days":"number","trigger_id":"string","trigger_name":"string","trigger_pattern":"string","trigger_type":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_v1":{"version":0,"block":{"attributes":{"auto_trigger":{"type":"bool","description_kind":"plain","computed":true},"average_speed":{"type":"number","description_kind":"plain","computed":true},"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"backup_record_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_ip":{"type":"string","description_kind":"plain","optional":true},"vm_metadata":{"type":["set",["object",{"cloud_service_type":"string","disk":"number","eip":"string","image_type":"string","name":"string","private_ip":"string","ram":"number","vcpus":"number"}]],"description_kind":"plain","computed":true},"volume_backups":{"type":["set",["object",{"average_speed":"number","bootable":"bool","id":"string","image_type":"string","incremental":"bool","name":"string","size":"number","snapshot_id":"string","source_volume_id":"string","source_volume_name":"string","source_volume_size":"number","space_saving_ratio":"number","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_flavor_v1":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_cpu":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_range":{"nesting_mode":"list","block":{"attributes":{"from":{"type":"number","description_kind":"plain","computed":true},"min_from":{"type":"number","description_kind":"plain","optional":true},"min_to":{"type":"number","description_kind":"plain","optional":true},"to":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v1":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","computed":true},"file_prefix_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tracker_name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_az_v1":{"version":0,"block":{"attributes":{"code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_certificate_v2":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","computed":true},"certificate":{"type":"string","description_kind":"plain","computed":true},"file_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_maintainwindow_v1":{"version":0,"block":{"attributes":{"begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"seq":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_product_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"spec_code":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dds_flavors_v3":{"version":0,"block":{"attributes":{"engine_name":{"type":"string","description_kind":"plain","required":true},"flavors":{"type":["list",["object",{"az_status":["map","string"],"memory":"string","spec_code":"string","type":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"vcpus":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_dds_instance_v3":{"version":0,"block":{"attributes":{"backup_strategy":{"type":["list",["object",{"keep_days":"number","start_time":"string"}]],"description_kind":"plain","computed":true},"datastore":{"type":["list",["object",{"storage_engine":"string","type":"string","version":"string"}]],"description_kind":"plain","computed":true},"datastore_type":{"type":"string","description_kind":"plain","optional":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","private_ip":"string","public_ip":"string","role":"string","status":"string","type":"string"}]],"description_kind":"plain","computed":true},"pay_mode":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"ssl":{"type":"bool","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_deh_host_v1":{"version":0,"block":{"attributes":{"auto_placement":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true},"available_instance_capacities":{"type":["list",["object",{"flavor":"string"}]],"description_kind":"plain","computed":true},"available_memory":{"type":"number","description_kind":"plain","computed":true},"available_vcpus":{"type":"number","description_kind":"plain","computed":true},"cores":{"type":"number","description_kind":"plain","computed":true},"host_type":{"type":"string","description_kind":"plain","computed":true},"host_type_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"instance_total":{"type":"number","description_kind":"plain","computed":true},"instance_uuids":{"type":["list","string"],"description_kind":"plain","computed":true},"memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sockets":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"vcpus":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_deh_server_v1":{"version":0,"block":{"attributes":{"dedicated_host_id":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":["map","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_direct_connect_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"applicant":{"type":"string","description_kind":"plain","computed":true},"apply_time":{"type":"string","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"building_line_product_id":{"type":"string","description_kind":"plain","computed":true},"cable_label":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"delete_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"hosting_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface_name":{"type":"string","description_kind":"plain","computed":true},"lag_id":{"type":"string","description_kind":"plain","computed":true},"last_onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mobile":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"peer_location":{"type":"string","description_kind":"plain","computed":true},"peer_port_type":{"type":"string","description_kind":"plain","computed":true},"peer_provider":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","computed":true},"period_type":{"type":"number","description_kind":"plain","computed":true},"port_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","computed":true},"provider_name":{"type":"string","description_kind":"plain","computed":true},"provider_status":{"type":"string","description_kind":"plain","computed":true},"reason":{"type":"string","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region_id":{"type":"string","description_kind":"plain","computed":true},"service_key":{"type":"string","description_kind":"plain","computed":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vgw_type":{"type":"string","description_kind":"plain","computed":true},"vlan":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_az_v1":{"version":0,"block":{"attributes":{"code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_maintainwindow_v1":{"version":0,"block":{"attributes":{"begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"seq":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_product_v1":{"version":0,"block":{"attributes":{"bandwidth":{"type":"string","description_kind":"plain","optional":true},"engine":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description_kind":"plain","required":true},"io_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_num":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_num":{"type":"string","description_kind":"plain","optional":true},"storage":{"type":"string","description_kind":"plain","optional":true,"computed":true},"storage_spec_code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_specification":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dns_nameservers_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"nameservers":{"nesting_mode":"list","block":{"attributes":{"hostname":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_zone_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"masters":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool_id":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"serial":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"zone_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dws_flavors_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavors":{"type":["list",["object",{"availability_zone":"string","flavor_id":"string","memory":"number","size":"number","vcpus":"number","volumetype":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vcpus":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_evs_volumes_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"shareable":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_id":{"type":"string","description_kind":"plain","optional":true},"volume_type_id":{"type":"string","description_kind":"plain","optional":true},"volumes":{"type":["list",["object",{"attachments":["list",["object",{"attached_at":"string","attached_mode":"string","device_name":"string","id":"string","server_id":"string"}]],"availability_zone":"string","bootable":"bool","create_at":"string","description":"string","id":"string","name":"string","service_type":"string","shareable":"bool","size":"number","status":"string","tags":["map","string"],"update_at":"string","volume_type":"string","wwn":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_agency_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"duration":{"type":"string","description_kind":"plain","computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"trust_domain_id":{"type":"string","description_kind":"plain","optional":true},"trust_domain_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_auth_scope_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","computed":true},"domain_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_domain_id":{"type":"string","description_kind":"plain","computed":true},"project_domain_name":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"roles":{"type":["list",["object",{"role_id":"string","role_name":"string"}]],"description_kind":"plain","computed":true},"user_domain_id":{"type":"string","description_kind":"plain","computed":true},"user_domain_name":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_credential_v3":{"version":0,"block":{"attributes":{"credentials":{"type":["list",["object",{"access":"string","create_time":"string","description":"string","status":"string","user_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_project_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_domain":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"parent_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_projects_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["list",["object",{"description":"string","domain_id":"string","enabled":"bool","is_domain":"bool","name":"string","parent_id":"string","project_id":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_custom_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"statement":{"type":["list",["object",{"action":["list","string"],"condition":"string","effect":"string","resource":["list","string"]}]],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_user_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mfa_device":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"password_expires_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_v2":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","computed":true},"checksum":{"type":"string","description_kind":"plain","computed":true},"container_format":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"image_source_type":{"type":"string","description_kind":"plain","computed":true},"image_type":{"type":"string","description_kind":"plain","computed":true},"is_registered":{"type":"string","description_kind":"plain","computed":true},"login_user":{"type":"string","description_kind":"plain","computed":true},"min_disk":{"type":"number","description_kind":"plain","computed":true},"min_ram":{"type":"number","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"original_image_name":{"type":"string","description_kind":"plain","computed":true},"os_bit":{"type":"string","description_kind":"plain","computed":true},"os_type":{"type":"string","description_kind":"plain","computed":true},"os_version":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","optional":true},"platform":{"type":"string","description_kind":"plain","computed":true},"protected":{"type":"bool","description_kind":"plain","computed":true},"schema":{"type":"string","description_kind":"plain","computed":true},"size_bytes":{"type":"number","description_kind":"plain","computed":true},"size_max":{"type":"number","description_kind":"plain","optional":true},"size_min":{"type":"number","description_kind":"plain","optional":true},"sort_direction":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"support_disk_intensive":{"type":"string","description_kind":"plain","computed":true},"support_high_performance":{"type":"string","description_kind":"plain","computed":true},"support_kvm":{"type":"string","description_kind":"plain","computed":true},"support_kvm_gpu_type":{"type":"string","description_kind":"plain","computed":true},"support_kvm_infiniband":{"type":"string","description_kind":"plain","computed":true},"support_large_memory":{"type":"string","description_kind":"plain","computed":true},"support_xen":{"type":"string","description_kind":"plain","computed":true},"support_xen_gpu_type":{"type":"string","description_kind":"plain","computed":true},"support_xen_hana":{"type":"string","description_kind":"plain","computed":true},"system_cmk_id":{"type":"string","description_kind":"plain","computed":true},"tag":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"virtual_env_type":{"type":"string","description_kind":"plain","computed":true},"visibility":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_kms_data_key_v1":{"version":0,"block":{"attributes":{"cipher_text":{"type":"string","description_kind":"plain","computed":true},"datakey_length":{"type":"string","description_kind":"plain","required":true},"encryption_context":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_id":{"type":"string","description_kind":"plain","required":true},"plain_text":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_kms_key_v1":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"default_key_flag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expiration_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_alias":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"origin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scheduled_deletion_date":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v3":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_flavor_v3":{"version":0,"block":{"attributes":{"bandwidth":{"type":"number","description_kind":"plain","computed":true},"cps":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_connections":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"qps":{"type":"number","description_kind":"plain","computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_flavors_v3":{"version":0,"block":{"attributes":{"flavors":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"advanced_forwarding":{"type":"bool","description_kind":"plain","computed":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"client_timeout":{"type":"number","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"insert_headers":{"type":["list",["object",{"forward_elb_ip":"bool","forwarded_for_port":"bool","forwarded_host":"bool","forwarded_port":"bool"}]],"description_kind":"plain","computed":true},"ip_group":{"type":["list",["object",{"enable":"bool","id":"string","type":"string"}]],"description_kind":"plain","computed":true},"keep_alive_timeout":{"type":"number","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true},"member_address":{"type":"string","description_kind":"plain","optional":true},"member_device_id":{"type":"string","description_kind":"plain","optional":true},"member_retry_enable":{"type":"bool","description_kind":"plain","computed":true},"member_timeout":{"type":"number","description_kind":"plain","optional":true},"memory_retry_enable":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"protocol_port":{"type":"number","description_kind":"plain","optional":true},"security_policy_id":{"type":"string","description_kind":"plain","computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","computed":true},"sni_match_algo":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"availability_zones":{"type":["set","string"],"description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_target_enable":{"type":"bool","description_kind":"plain","computed":true},"l4_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"l7_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"public_ip":{"type":["list",["object",{"address":"string","bandwidth_charge_mode":"string","bandwidth_name":"string","bandwidth_share_type":"string","bandwidth_size":"number","id":"string","ip_type":"string"}]],"description_kind":"plain","computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_member_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_nat_dnat_rules_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"external_service_port":{"type":"number","description_kind":"plain","optional":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_service_port":{"type":"number","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"rule_id":{"type":"string","description_kind":"plain","optional":true},"rules":{"type":["list",["object",{"created_at":"string","description":"string","external_service_port":"number","floating_ip_address":"string","floating_ip_id":"string","gateway_id":"string","id":"string","internal_service_port":"number","port_id":"string","private_ip":"string","protocol":"string","status":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_nat_gateway_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_network_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"spec":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_nat_snat_rules_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"rule_id":{"type":"string","description_kind":"plain","optional":true},"rules":{"type":["list",["object",{"admin_state_up":"bool","cidr":"string","created_at":"string","floating_ip_address":"string","floating_ip_id":"string","gateway_id":"string","id":"string","project_id":"string","source_type":"number","status":"string","subnet_id":"string"}]],"description_kind":"plain","computed":true},"source_type":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_network_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"matching_subnet_cidr":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_ids_v2":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description_kind":"plain","optional":true},"device_owner":{"type":"string","description_kind":"plain","optional":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["list","string"],"description_kind":"plain","computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"sort_direction":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"all_fixed_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"all_security_group_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true},"device_owner":{"type":"string","description_kind":"plain","optional":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_rule_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secgroup_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"cors_rule":{"type":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"description_kind":"plain","computed":true},"event_notifications":{"type":["list",["object",{"events":["set","string"],"filter_rule":["set",["object",{"name":"string","value":"string"}]],"id":"string","topic":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_rule":{"type":["list",["object",{"enabled":"bool","expiration":["set",["object",{"days":"number"}]],"name":"string","noncurrent_version_expiration":["set",["object",{"days":"number"}]],"noncurrent_version_transition":["list",["object",{"days":"number","storage_class":"string"}]],"prefix":"string","transition":["list",["object",{"days":"number","storage_class":"string"}]]}]],"description_kind":"plain","computed":true},"logging":{"type":["set",["object",{"target_bucket":"string","target_prefix":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"server_side_encryption":{"type":["list",["object",{"algorithm":"string","kms_key_id":"string"}]],"description_kind":"plain","computed":true},"storage_class":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"versioning":{"type":"bool","description_kind":"plain","computed":true},"website":{"type":["list",["object",{"error_document":"string","index_document":"string","redirect_all_requests_to":"string","routing_rules":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_object":{"version":0,"block":{"attributes":{"body":{"type":"string","description_kind":"plain","computed":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description_kind":"plain","computed":true},"content_language":{"type":"string","description_kind":"plain","computed":true},"content_length":{"type":"number","description_kind":"plain","computed":true},"content_type":{"type":"string","description_kind":"plain","computed":true},"etag":{"type":"string","description_kind":"plain","computed":true},"expiration":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"last_modified":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_redirect_location":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rds_backup_v3":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"begin_time":{"type":"string","description_kind":"plain","computed":true},"databases":{"type":["set","string"],"description_kind":"plain","computed":true},"db_type":{"type":"string","description_kind":"plain","computed":true},"db_version":{"type":"string","description_kind":"plain","computed":true},"end_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_rds_flavors_v1":{"version":0,"block":{"attributes":{"datastore_name":{"type":"string","description_kind":"plain","required":true},"datastore_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"speccode":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_rds_flavors_v3":{"version":0,"block":{"attributes":{"db_type":{"type":"string","description_kind":"plain","required":true},"db_version":{"type":"string","description_kind":"plain","required":true},"flavors":{"type":["list",["object",{"az_status":["map","string"],"memory":"number","mode":"string","name":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_mode":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rds_instance_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":["list","string"],"description_kind":"plain","computed":true},"backup_strategy":{"type":["list",["object",{"keep_days":"number","start_time":"string"}]],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"datastore_type":{"type":"string","description_kind":"plain","optional":true},"datastore_version":{"type":"string","description_kind":"plain","computed":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","computed":true},"ha":{"type":["map","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"nodes":{"type":["list",["object",{"availability_zone":"string","id":"string","name":"string","role":"string","status":"string"}]],"description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"timezone":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true},"volume_size":{"type":"number","description_kind":"plain","computed":true},"volume_type":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_rds_versions_v3":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"versions":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_software_config_v1":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","computed":true},"group":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"input_values":{"type":["list",["map","string"]],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"options":{"type":["map","string"],"description_kind":"plain","computed":true},"output_values":{"type":["list",["map","string"]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_software_deployment_v1":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"config_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"input_values":{"type":["map","string"],"description_kind":"plain","computed":true},"output_values":{"type":["map","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"status_reason":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_resource_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logical_resource_id":{"type":"string","description_kind":"plain","computed":true},"physical_resource_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"required_by":{"type":["set","string"],"description_kind":"plain","computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true},"resource_status":{"type":"string","description_kind":"plain","computed":true},"resource_status_reason":{"type":"string","description_kind":"plain","computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"stack_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_v1":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description_kind":"plain","computed":true},"disable_rollback":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"notification_topics":{"type":["set","string"],"description_kind":"plain","computed":true},"outputs":{"type":["map","string"],"description_kind":"plain","computed":true},"parameters":{"type":["map","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"status_reason":{"type":"string","description_kind":"plain","computed":true},"template_body":{"type":"string","description_kind":"plain","computed":true},"timeout_mins":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_object":{"version":0,"block":{"attributes":{"body":{"type":"string","description_kind":"plain","computed":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description_kind":"plain","computed":true},"content_language":{"type":"string","description_kind":"plain","computed":true},"content_length":{"type":"number","description_kind":"plain","computed":true},"content_type":{"type":"string","description_kind":"plain","computed":true},"etag":{"type":"string","description_kind":"plain","computed":true},"expiration":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"last_modified":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"range":{"type":"string","description_kind":"plain","optional":true},"server_side_encryption":{"type":"string","description_kind":"plain","computed":true},"sse_kms_key_id":{"type":"string","description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_redirect_location":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_sdrs_domain_v1":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_sfs_file_system_v2":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","computed":true},"access_type":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"export_locations":{"type":["set","string"],"description_kind":"plain","computed":true},"host":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"is_public":{"type":"bool","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"mount_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"preferred":{"type":"bool","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true},"share_instance_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_sfs_turbo_share_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"available_capacity":{"type":"string","description_kind":"plain","computed":true},"crypt_key_id":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_policy_v2":{"version":0,"block":{"attributes":{"frequency":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"policy_resource_count":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remain_first_backup":{"type":"string","description_kind":"plain","computed":true},"rentention_num":{"type":"number","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set",["object",{"key":"string","value":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"filter_tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"share_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"to_project_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth":{"version":0,"block":{"attributes":{"bandwidth_type":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"enterprise_project_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_vpc_bandwidth_v2":{"version":0,"block":{"attributes":{"bandwidth_type":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_eip_v1":{"version":0,"block":{"attributes":{"bandwidth_id":{"type":"string","description_kind":"plain","optional":true},"bandwidth_share_type":{"type":"string","description_kind":"plain","computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"ip_version":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description_kind":"plain","optional":true},"public_ip_address":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"peer_tenant_id":{"type":"string","description_kind":"plain","optional":true},"peer_vpc_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_table_v1":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"route":{"type":["list",["object",{"description":"string","destination":"string","nexthop":"string","type":"string"}]],"description_kind":"plain","computed":true},"subnets":{"type":["list","string"],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_tables_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"routetables":{"type":["list",["object",{"default":"bool","description":"string","id":"string","name":"string","routes":["set",["object",{"description":"string","destination":"string","nexthop":"string","type":"string"}]],"subnets":["set","string"],"tenant_id":"string","vpc_id":"string"}]],"description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_v2":{"version":0,"block":{"attributes":{"destination":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"nexthop":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_ids_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"cidr":{"type":"string","description_kind":"plain","optional":true},"cidr_ipv6":{"type":"string","description_kind":"plain","computed":true},"dhcp_enable":{"type":"bool","description_kind":"plain","computed":true},"dns_list":{"type":["set","string"],"description_kind":"plain","computed":true},"gateway_ip":{"type":"string","description_kind":"plain","optional":true},"gateway_ipv6":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6_enable":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"primary_dns":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_dns":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_v1":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"routes":{"type":["list",["object",{"destination":"string","nexthop":"string"}]],"description_kind":"plain","computed":true},"shared":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpcep_public_service_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_charge":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpcep_service_v1":{"version":0,"block":{"attributes":{"approval_enabled":{"type":"bool","description_kind":"plain","computed":true},"connection_count":{"type":"number","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":["set",["object",{"client_port":"number","protocol":"string","server_port":"number"}]],"description_kind":"plain","computed":true},"port_id":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"server_type":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tcp_proxy":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_service_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"external_v4_ip":{"type":"string","description_kind":"plain","optional":true},"external_v6_ip":{"type":"string","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_reference_tables_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tables":{"type":["list",["object",{"conditions":["list","string"],"created_at":"string","description":"string","id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/opentelekomcloud/opentelekomcloud":{"provider":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The access key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","description_kind":"plain","optional":true},"agency_domain_name":{"type":"string","description":"The name of domain who created the agency (Identity v3).","description_kind":"plain","optional":true},"agency_name":{"type":"string","description":"The name of agency","description_kind":"plain","optional":true},"allow_reauth":{"type":"bool","description_kind":"plain","optional":true},"auth_url":{"type":"string","description":"The Identity authentication URL.","description_kind":"plain","optional":true},"backoff_retry_timeout":{"type":"number","description":"Timeout in seconds for backoff retry","description_kind":"plain","optional":true},"cacert_file":{"type":"string","description":"A Custom CA certificate.","description_kind":"plain","optional":true},"cert":{"type":"string","description":"A client certificate to authenticate with.","description_kind":"plain","optional":true},"cloud":{"type":"string","description":"An entry in a `clouds.yaml` file to use.","description_kind":"plain","optional":true},"delegated_project":{"type":"string","description":"The name of delegated project (Identity v3).","description_kind":"plain","optional":true},"domain_id":{"type":"string","description":"The ID of the Domain to scope to (Identity v3).","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The name of the Domain to scope to (Identity v3).","description_kind":"plain","optional":true},"endpoint_type":{"type":"string","description_kind":"plain","optional":true},"insecure":{"type":"bool","description":"Trust self-signed certificates.","description_kind":"plain","optional":true},"key":{"type":"string","description":"A client private key to authenticate with.","description_kind":"plain","optional":true},"max_backoff_retries":{"type":"number","description":"How many times HTTP request should be retried when rate limit reached","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"How many times HTTP connection should be retried until giving up.","description_kind":"plain","optional":true},"passcode":{"type":"string","description":"One-time MFA passcode","description_kind":"plain","optional":true},"password":{"type":"string","description":"Password to login with.","description_kind":"plain","optional":true,"sensitive":true},"region":{"type":"string","description":"The OpenTelekomCloud region to connect to.","description_kind":"plain","optional":true},"secret_key":{"type":"string","description":"The secret key for API operations. You can retrieve this\nfrom the 'My Credential' section of the console.","description_kind":"plain","optional":true,"sensitive":true},"security_token":{"type":"string","description":"Security token to use for OBS federated authentication.","description_kind":"plain","optional":true,"sensitive":true},"swauth":{"type":"bool","description":"Use Swift's authentication system instead of Keystone. Only used for\ninteraction with Swift.","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true},"tenant_name":{"type":"string","description":"The name of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true},"token":{"type":"string","description":"Authentication token to use as an alternative to username/password.","description_kind":"plain","optional":true,"sensitive":true},"user_id":{"type":"string","description":"User ID to login with.","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"Username to login with.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"opentelekomcloud_antiddos_v1":{"version":0,"block":{"attributes":{"app_type_id":{"type":"number","description_kind":"plain","required":true},"cleaning_access_pos_id":{"type":"number","description_kind":"plain","required":true},"enable_l7":{"type":"bool","description_kind":"plain","required":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"http_request_pos_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_pos_id":{"type":"number","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_apigw_acl_policy_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_acl_policy_v2":{"version":0,"block":{"attributes":{"entity_type":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_publishment_v2":{"version":0,"block":{"attributes":{"api_id":{"type":"string","description_kind":"plain","required":true},"api_name":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"environment_id":{"type":"string","description_kind":"plain","required":true},"environment_name":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"history":{"type":["list",["object",{"description":"string","version_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"publish_id":{"type":"string","description":"The publish ID of the API in current environment.","description_kind":"plain","computed":true},"published_at":{"type":"string","description":"Time when the current version was published.","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_v2":{"version":0,"block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"body_description":{"type":"string","description_kind":"plain","optional":true},"cors":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"failure_response":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registered_at":{"type":"string","description_kind":"plain","computed":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","required":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"response_id":{"type":"string","description_kind":"plain","optional":true},"security_authentication_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"security_authentication_type":{"type":"string","description_kind":"plain","optional":true},"success_response":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":50},"func_graph":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"invocation_type":{"type":"string","description_kind":"plain","optional":true},"network_type":{"type":"string","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"func_graph_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"invocation_type":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"network_type":{"type":"string","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description_kind":"plain"},"max_items":5},"http":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","optional":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"retry_count":{"type":"number","description_kind":"plain","optional":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"url_domain":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_id":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_proxy_host":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"http_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"request_method":{"type":"string","description_kind":"plain","required":true},"request_protocol":{"type":"string","description_kind":"plain","optional":true},"request_uri":{"type":"string","description_kind":"plain","required":true},"retry_count":{"type":"number","description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","optional":true},"url_domain":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_id":{"type":"string","description_kind":"plain","optional":true},"vpc_channel_proxy_host":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description_kind":"plain"},"max_items":5},"mock":{"nesting_mode":"list","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"response":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"mock_policy":{"nesting_mode":"set","block":{"attributes":{"authorizer_id":{"type":"string","description_kind":"plain","optional":true},"effective_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"response":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"backend_params":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"system_param_type":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"conditions":{"nesting_mode":"set","block":{"attributes":{"origin":{"type":"string","description_kind":"plain","optional":true},"param_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5}},"description":"The mock policy backends.","description_kind":"plain"},"max_items":5},"request_params":{"nesting_mode":"set","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"enumeration":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":"string","description_kind":"plain","optional":true},"maximum":{"type":"number","description_kind":"plain","optional":true},"minimum":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"passthrough":{"type":"bool","description_kind":"plain","optional":true},"required":{"type":"bool","description_kind":"plain","optional":true},"sample":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"validity_check":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":50}},"description_kind":"plain"}},"opentelekomcloud_apigw_appcode_v2":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_application_authorization_v2":{"version":0,"block":{"attributes":{"api_ids":{"type":["set","string"],"description_kind":"plain","required":true},"application_id":{"type":"string","description_kind":"plain","required":true},"env_id":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_application_v2":{"version":0,"block":{"attributes":{"app_codes":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"app_key":{"type":"string","description_kind":"plain","computed":true},"app_secret":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"registration_time":{"type":"string","description_kind":"plain","computed":true},"secret_action":{"type":"string","description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_custom_authorizer_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_body_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"identity":{"nesting_mode":"set","block":{"attributes":{"location":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"validation":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_environment_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_environment_variable_v2":{"version":0,"block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","required":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_gateway_v2":{"version":0,"block":{"attributes":{"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"bandwidth_charging_mode":{"type":"string","description_kind":"plain","optional":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_bandwidth_charging_mode":{"type":"string","description_kind":"plain","optional":true},"ingress_bandwidth_size":{"type":"number","description_kind":"plain","optional":true},"loadbalancer_provider":{"type":"string","description_kind":"plain","optional":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_egress_addresses":{"type":["list","string"],"description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"public_egress_address":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"spec_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"supported_features":{"type":["list","string"],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_ingress_address":{"type":"string","description_kind":"plain","computed":true},"vpcep_service_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registration_time":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"environment":{"nesting_mode":"set","block":{"attributes":{"environment_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"variable":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_response_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"body":{"type":"string","description_kind":"plain","required":true},"error_type":{"type":"string","description_kind":"plain","required":true},"status_code":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_signature_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"signature_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_apigw_signature_v2":{"version":0,"block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"secret":{"type":"string","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_throttling_policy_associate_v2":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"publish_ids":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_throttling_policy_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"max_app_requests":{"type":"number","description_kind":"plain","optional":true},"max_ip_requests":{"type":"number","description_kind":"plain","optional":true},"max_user_requests":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"period_unit":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"app_throttles":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"throttling_object_id":{"type":"string","description_kind":"plain","required":true},"throttling_object_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":30},"user_throttles":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"max_api_requests":{"type":"number","description_kind":"plain","required":true},"throttling_object_id":{"type":"string","description_kind":"plain","required":true},"throttling_object_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":30}},"description_kind":"plain"}},"opentelekomcloud_apigw_vpc_channel_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_algorithm":{"type":"number","description_kind":"plain","required":true},"member_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"health_check":{"nesting_mode":"list","block":{"attributes":{"enable_client_ssl":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"http_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interval":{"type":"number","description_kind":"plain","required":true},"method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"threshold_abnormal":{"type":"number","description_kind":"plain","required":true},"threshold_normal":{"type":"number","description_kind":"plain","required":true},"timeout":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"member":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"host":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_backup":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"member_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"microservice_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"microservice_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"microservice_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"microservice":{"nesting_mode":"list","block":{"block_types":{"cce_config":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"label_key":{"type":"string","description_kind":"plain","optional":true},"label_value":{"type":"string","description_kind":"plain","optional":true},"namespace":{"type":"string","description_kind":"plain","required":true},"workload_name":{"type":"string","description_kind":"plain","optional":true},"workload_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"cse_config":{"nesting_mode":"list","block":{"attributes":{"engine_id":{"type":"string","description_kind":"plain","required":true},"service_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_configuration_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_configuration_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"instance_config":{"nesting_mode":"list","block":{"attributes":{"flavor":{"type":"string","description_kind":"plain","optional":true},"image":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"key_name":{"type":"string","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"disk":{"nesting_mode":"list","block":{"attributes":{"disk_type":{"type":"string","description_kind":"plain","required":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"personality":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":5},"public_ip":{"nesting_mode":"list","block":{"block_types":{"eip":{"nesting_mode":"list","block":{"attributes":{"ip_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"bandwidth":{"nesting_mode":"list","block":{"attributes":{"charging_mode":{"type":"string","description_kind":"plain","required":true},"share_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_group_v1":{"version":0,"block":{"attributes":{"available_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description":"The cooling duration, in seconds.","description_kind":"plain","optional":true},"current_instance_number":{"type":"number","description_kind":"plain","computed":true},"delete_instances":{"type":"string","description":"Whether to delete instances when they are removed from the AS group.","description_kind":"plain","required":true},"delete_publicip":{"type":"bool","description_kind":"plain","required":true},"desire_instance_number":{"type":"number","description_kind":"plain","optional":true},"health_periodic_audit_grace_period":{"type":"number","description":"The grace period for instance health check, in seconds.","description_kind":"plain","optional":true},"health_periodic_audit_method":{"type":"string","description_kind":"plain","optional":true},"health_periodic_audit_time":{"type":"number","description":"The health check period for instances, in minutes.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_terminate_policy":{"type":"string","description_kind":"plain","optional":true},"instances":{"type":["list","string"],"description":"The instances id list in the as group.","description_kind":"plain","computed":true},"lb_listener_id":{"type":"string","description":"The system supports the binding of up to six classic LB listeners, the IDs of which are separated using a comma.","description_kind":"plain","deprecated":true,"optional":true},"max_instance_number":{"type":"number","description_kind":"plain","optional":true},"min_instance_number":{"type":"number","description_kind":"plain","optional":true},"notifications":{"type":["list","string"],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_configuration_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_group_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"lbaas_listeners":{"nesting_mode":"list","block":{"attributes":{"pool_id":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":6},"networks":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":5},"security_groups":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_as_lifecycle_hook_v1":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"default_result":{"type":"string","description_kind":"plain","optional":true},"default_timeout":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_metadata":{"type":"string","description_kind":"plain","optional":true},"notification_topic_name":{"type":"string","description_kind":"plain","computed":true},"notification_topic_urn":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"scaling_group_id":{"type":"string","description_kind":"plain","required":true},"scaling_lifecycle_hook_name":{"type":"string","description_kind":"plain","required":true},"scaling_lifecycle_hook_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_as_policy_v1":{"version":0,"block":{"attributes":{"alarm_id":{"type":"string","description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_group_id":{"type":"string","description_kind":"plain","required":true},"scaling_policy_name":{"type":"string","description_kind":"plain","required":true},"scaling_policy_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"scaling_policy_action":{"nesting_mode":"list","block":{"attributes":{"instance_number":{"type":"number","description_kind":"plain","optional":true},"operation":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"scheduled_policy":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","optional":true},"launch_time":{"type":"string","description_kind":"plain","required":true},"recurrence_type":{"type":"string","description_kind":"plain","optional":true},"recurrence_value":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_as_policy_v2":{"version":0,"block":{"attributes":{"alarm_id":{"type":"string","description_kind":"plain","optional":true},"cool_down_time":{"type":"number","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["set",["object",{"bandwidth_share_type":"string","eip_address":"string","eip_id":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scaling_policy_name":{"type":"string","description_kind":"plain","required":true},"scaling_policy_type":{"type":"string","description_kind":"plain","required":true},"scaling_resource_id":{"type":"string","description_kind":"plain","required":true},"scaling_resource_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"scaling_policy_action":{"nesting_mode":"set","block":{"attributes":{"limits":{"type":"number","description_kind":"plain","optional":true,"computed":true},"operation":{"type":"string","description_kind":"plain","optional":true},"percentage":{"type":"number","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scheduled_policy":{"nesting_mode":"set","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","optional":true},"launch_time":{"type":"string","description_kind":"plain","required":true},"recurrence_type":{"type":"string","description_kind":"plain","optional":true},"recurrence_value":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_blockstorage_volume_v2":{"version":0,"block":{"attributes":{"attachment":{"type":["set",["object",{"device":"string","id":"string","instance_id":"string"}]],"description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cascade":{"type":"bool","description_kind":"plain","optional":true},"consistency_group_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","required":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"source_replica":{"type":"string","description_kind":"plain","optional":true},"source_vol_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"wwn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cbr_policy_v3":{"version":0,"block":{"attributes":{"destination_project_id":{"type":"string","description_kind":"plain","optional":true},"destination_region":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"trigger_pattern":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"operation_definition":{"nesting_mode":"list","block":{"attributes":{"day_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"max_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"month_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"retention_duration_days":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timezone":{"type":"string","description_kind":"plain","required":true},"week_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true},"year_backups":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cbr_vault_v3":{"version":0,"block":{"attributes":{"auto_bind":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"auto_expand":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"backup_policy_id":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"enterprise_project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"provider_id":{"type":"string","description_kind":"plain","computed":true},"resource":{"type":["set",["object",{"backup_count":"number","backup_size":"number","exclude_volumes":["set","string"],"id":"string","include_volumes":["set","string"],"name":"string","protect_status":"string","size":"number","type":"string"}]],"description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"billing":{"nesting_mode":"list","block":{"attributes":{"allocated":{"type":"number","description_kind":"plain","computed":true},"charging_mode":{"type":"string","description_kind":"plain","optional":true},"cloud_type":{"type":"string","description_kind":"plain","optional":true},"consistent_level":{"type":"string","description_kind":"plain","optional":true},"console_url":{"type":"string","description_kind":"plain","optional":true},"extra_info":{"type":["map","string"],"description_kind":"plain","optional":true},"frozen_scene":{"type":"string","description_kind":"plain","computed":true},"is_auto_pay":{"type":"bool","description_kind":"plain","optional":true},"is_auto_renew":{"type":"bool","description_kind":"plain","optional":true},"object_type":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","optional":true},"period_type":{"type":"string","description_kind":"plain","optional":true},"product_id":{"type":"string","description_kind":"plain","computed":true},"protect_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_unit":{"type":"string","description_kind":"plain","computed":true},"used":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"bind_rules":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"template_name":{"type":"string","description_kind":"plain","required":true},"template_version":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"values":{"nesting_mode":"list","block":{"attributes":{"basic":{"type":["map","string"],"description_kind":"plain","required":true},"custom":{"type":["map","string"],"description_kind":"plain","required":true},"flavor":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_v3":{"version":0,"block":{"attributes":{"annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"authenticating_proxy_ca":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"authentication_mode":{"type":"string","description_kind":"plain","optional":true},"billing_mode":{"type":"number","description_kind":"plain","optional":true,"computed":true},"certificate_clusters":{"type":["list",["object",{"certificate_authority_data":"string","name":"string","server":"string"}]],"description_kind":"plain","computed":true},"certificate_users":{"type":["list",["object",{"client_certificate_data":"string","client_key_data":"string","name":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","required":true},"cluster_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"container_network_cidr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"container_network_type":{"type":"string","description_kind":"plain","required":true},"delete_all_network":{"type":"string","description_kind":"plain","optional":true},"delete_all_storage":{"type":"string","description_kind":"plain","optional":true},"delete_efs":{"type":"string","description_kind":"plain","optional":true},"delete_eni":{"type":"string","description_kind":"plain","optional":true},"delete_evs":{"type":"string","description_kind":"plain","optional":true},"delete_net":{"type":"string","description_kind":"plain","optional":true},"delete_obs":{"type":"string","description_kind":"plain","optional":true},"delete_sfs":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"eip":{"type":"string","description_kind":"plain","optional":true},"enable_volume_encryption":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"eni_subnet_cidr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"eni_subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"extend_param":{"type":["map","string"],"description_kind":"plain","optional":true},"external":{"type":"string","description_kind":"plain","computed":true},"external_otc":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","required":true},"highway_subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_addons":{"type":"bool","description_kind":"plain","optional":true},"ignore_certificate_clusters_data":{"type":"bool","description_kind":"plain","optional":true},"ignore_certificate_users_data":{"type":"bool","description_kind":"plain","optional":true},"installed_addons":{"type":["set","string"],"description_kind":"plain","computed":true},"internal":{"type":"string","description_kind":"plain","computed":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubernetes_svc_ip_range":{"type":"string","description_kind":"plain","optional":true,"computed":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"multi_az":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"no_addons":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_control":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_node":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"authenticating_proxy":{"nesting_mode":"list","block":{"attributes":{"ca":{"type":"string","description_kind":"plain","required":true},"cert":{"type":"string","description_kind":"plain","required":true},"private_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_node_pool_v3":{"version":0,"block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"docker_base_size":{"type":"number","description_kind":"plain","optional":true},"docker_lvm_config_override":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_node_count":{"type":"number","description_kind":"plain","required":true},"k8s_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"max_node_count":{"type":"number","description_kind":"plain","optional":true},"max_pods":{"type":"number","description_kind":"plain","optional":true,"computed":true},"min_node_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"postinstall":{"type":"string","description_kind":"plain","optional":true},"preinstall":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true},"runtime":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scale_down_cooldown_time":{"type":"number","description_kind":"plain","optional":true},"scale_enable":{"type":"bool","description_kind":"plain","optional":true},"security_group_ids":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"server_group_reference":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"data_volumes":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"taints":{"nesting_mode":"list","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cce_node_v3":{"version":0,"block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","optional":true},"annotations":{"type":["map","string"],"description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"bandwidth_charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true},"billing_mode":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"dedicated_host_id":{"type":"string","description_kind":"plain","optional":true},"docker_base_size":{"type":"number","description_kind":"plain","optional":true},"docker_lvm_config_override":{"type":"string","description_kind":"plain","optional":true},"ecs_performance_type":{"type":"string","description_kind":"plain","optional":true},"eip_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"eip_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"extend_param_charging_mode":{"type":"number","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"iptype":{"type":"string","description_kind":"plain","optional":true,"computed":true},"k8s_tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description_kind":"plain","optional":true},"max_pods":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"order_id":{"type":"string","description_kind":"plain","optional":true},"os":{"type":"string","description_kind":"plain","optional":true,"computed":true},"postinstall":{"type":"string","description_kind":"plain","optional":true},"preinstall":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","optional":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"sharetype":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"data_volumes":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"root_volume":{"nesting_mode":"list","block":{"attributes":{"extend_param":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"extend_params":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"volumetype":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"taints":{"nesting_mode":"list","block":{"attributes":{"effect":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ces_alarmrule":{"version":0,"block":{"attributes":{"alarm_action_enabled":{"type":"bool","description_kind":"plain","optional":true},"alarm_description":{"type":"string","description_kind":"plain","optional":true},"alarm_enabled":{"type":"bool","description_kind":"plain","optional":true},"alarm_level":{"type":"number","description_kind":"plain","optional":true},"alarm_name":{"type":"string","description_kind":"plain","required":true},"alarm_state":{"type":"string","description_kind":"plain","computed":true},"alarm_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"alarm_actions":{"nesting_mode":"list","block":{"attributes":{"notification_list":{"type":["list","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"condition":{"nesting_mode":"list","block":{"attributes":{"alarm_frequency":{"type":"number","description_kind":"plain","optional":true},"comparison_operator":{"type":"string","description_kind":"plain","required":true},"count":{"type":"number","description_kind":"plain","required":true},"filter":{"type":"string","description_kind":"plain","required":true},"period":{"type":"number","description_kind":"plain","required":true},"unit":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"metric":{"nesting_mode":"list","block":{"attributes":{"metric_name":{"type":"string","description_kind":"plain","required":true},"namespace":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dimensions":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":3}},"description_kind":"plain"},"min_items":1,"max_items":1},"ok_actions":{"nesting_mode":"list","block":{"attributes":{"notification_list":{"type":["list","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_server_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"admin_pass":{"type":"string","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"config_drive":{"type":"bool","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"host_id":{"type":"string","description_kind":"plain","computed":true},"host_status":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel_id":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"stop_before_destroy":{"type":"bool","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"block_device":{"nesting_mode":"list","block":{"attributes":{"boot_index":{"type":"number","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true},"destination_type":{"type":"string","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"guest_format":{"type":"string","description_kind":"plain","optional":true},"source_type":{"type":"string","description_kind":"plain","required":true},"uuid":{"type":"string","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"access_network":{"type":"bool","description_kind":"plain","optional":true},"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uuid":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_tags_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["set","string"],"description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_floatingip_associate_v2":{"version":0,"block":{"attributes":{"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"floating_ip":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_floatingip_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","computed":true},"pool":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_instance_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"admin_pass":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"all_metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"auto_recovery":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"config_drive":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encrypted_password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"power_state":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"ssh_private_key_path":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"stop_before_destroy":{"type":"bool","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"volume_attached":{"type":["list",["object",{"id":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"block_device":{"nesting_mode":"list","block":{"attributes":{"boot_index":{"type":"number","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description_kind":"plain","optional":true},"destination_type":{"type":"string","description_kind":"plain","optional":true},"device_name":{"type":"string","description_kind":"plain","optional":true},"guest_format":{"type":"string","description_kind":"plain","optional":true},"source_type":{"type":"string","description_kind":"plain","required":true},"uuid":{"type":"string","description_kind":"plain","optional":true},"volume_size":{"type":"number","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"network":{"nesting_mode":"list","block":{"attributes":{"access_network":{"type":"bool","description_kind":"plain","optional":true},"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uuid":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scheduler_hints":{"nesting_mode":"set","block":{"attributes":{"build_near_host_ip":{"type":"string","description_kind":"plain","optional":true},"deh_id":{"type":"string","description_kind":"plain","optional":true},"different_host":{"type":["list","string"],"description_kind":"plain","optional":true},"group":{"type":"string","description_kind":"plain","optional":true},"query":{"type":["list","string"],"description_kind":"plain","optional":true},"same_host":{"type":["list","string"],"description_kind":"plain","optional":true},"target_cell":{"type":"string","description_kind":"plain","optional":true},"tenancy":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_keypair_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_key":{"type":"string","description_kind":"plain","computed":true},"public_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_secgroup_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"set","block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"from_group_id":{"type":"string","description_kind":"plain","optional":true},"from_port":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"ip_protocol":{"type":"string","description_kind":"plain","required":true},"self":{"type":"bool","description_kind":"plain","optional":true},"to_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_compute_servergroup_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policies":{"type":["list","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_volume_attach_v2":{"version":0,"block":{"attributes":{"device":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_policy_v1":{"version":0,"block":{"attributes":{"common":{"type":["map","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"provider_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"resource":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"scheduled_operation":{"nesting_mode":"set","block":{"attributes":{"day_backups":{"type":"number","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"max_backups":{"type":"number","description_kind":"plain","optional":true},"month_backups":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"permanent":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"retention_duration_days":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"trigger_id":{"type":"string","description_kind":"plain","computed":true},"trigger_name":{"type":"string","description_kind":"plain","computed":true},"trigger_pattern":{"type":"string","description_kind":"plain","required":true},"trigger_type":{"type":"string","description_kind":"plain","computed":true},"week_backups":{"type":"number","description_kind":"plain","optional":true},"year_backups":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_v1":{"version":0,"block":{"attributes":{"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"backup_record_id":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"vm_metadata":{"type":["set",["object",{"cloud_service_type":"string","disk":"number","eip":"string","image_type":"string","name":"string","private_ip":"string","ram":"number","vcpus":"number"}]],"description_kind":"plain","computed":true},"volume_backups":{"type":["set",["object",{"average_speed":"number","bootable":"bool","id":"string","image_type":"string","incremental":"bool","name":"string","size":"number","snapshot_id":"string","source_volume_id":"string","source_volume_name":"string","source_volume_size":"number","space_saving_ratio":"number","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_cluster_v1":{"version":0,"block":{"attributes":{"admin_pass":{"type":"string","description_kind":"plain","optional":true},"created":{"type":"string","description_kind":"plain","computed":true},"enable_authority":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_https":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"endpoint":{"type":"string","description_kind":"plain","computed":true},"expect_node_num":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"node_config":{"nesting_mode":"list","block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true}},"block_types":{"network_info":{"nesting_mode":"list","block":{"attributes":{"network_id":{"type":"string","description_kind":"plain","required":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"volume":{"nesting_mode":"list","block":{"attributes":{"encryption_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","required":true},"volume_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_snapshot_configuration_v1":{"version":0,"block":{"attributes":{"automatic":{"type":"bool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"agency":{"type":"string","description_kind":"plain","required":true},"base_path":{"type":"string","description_kind":"plain","required":true},"bucket":{"type":"string","description_kind":"plain","required":true},"kms_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"creation_policy":{"nesting_mode":"list","block":{"attributes":{"delete_auto":{"type":"bool","description_kind":"plain","optional":true},"enable":{"type":"bool","description_kind":"plain","required":true},"keepday":{"type":"number","description_kind":"plain","required":true},"period":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_event_notification_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_id":{"type":"string","description_kind":"plain","computed":true},"notification_name":{"type":"string","description_kind":"plain","required":true},"notification_type":{"type":"string","description_kind":"plain","computed":true},"operation_type":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"notify_user_list":{"nesting_mode":"list","block":{"attributes":{"user_group":{"type":"string","description_kind":"plain","required":true},"user_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"operations":{"nesting_mode":"list","block":{"attributes":{"resource_type":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","required":true},"trace_names":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v1":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","required":true},"file_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tracker_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v3":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"compress_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"detail":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"file_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_obs_created":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_sort_by_service":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","required":true},"tracker_name":{"type":"string","description_kind":"plain","computed":true},"tracker_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dc_endpoint_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_dc_virtual_gateway_v2":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_ep_group_id":{"type":"string","description_kind":"plain","computed":true},"local_ep_group_ipv6_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redundant_device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"local_ep_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"local_ep_group_v6":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_dc_virtual_interface_v2":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","optional":true,"computed":true},"bandwidth":{"type":"number","description_kind":"plain","required":true},"bgp_md5":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"direct_connect_id":{"type":"string","description_kind":"plain","required":true},"enable_bfd":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_nqa":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_gateway_v4_ip":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"remote_ep_group_id":{"type":"string","description_kind":"plain","computed":true},"remote_gateway_v4_ip":{"type":"string","description_kind":"plain","optional":true},"route_mode":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"virtual_gateway_id":{"type":"string","description_kind":"plain","required":true},"vlan":{"type":"number","description_kind":"plain","required":true}},"block_types":{"remote_ep_group":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_dcs_instance_v1":{"version":0,"block":{"attributes":{"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"backup_at":{"type":["list","number"],"description_kind":"plain","deprecated":true,"optional":true},"backup_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"begin_at":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"capacity":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_version":{"type":"string","description_kind":"plain","computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"no_password_access":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"period_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"port":{"type":"number","description_kind":"plain","computed":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"product_id":{"type":"string","description_kind":"plain","required":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"save_days":{"type":"number","description_kind":"plain","deprecated":true,"optional":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"used_memory":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"backup_policy":{"nesting_mode":"list","block":{"attributes":{"backup_at":{"type":["list","number"],"description_kind":"plain","required":true},"backup_type":{"type":"string","description_kind":"plain","optional":true},"begin_at":{"type":"string","description_kind":"plain","required":true},"period_type":{"type":"string","description_kind":"plain","required":true},"save_days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"configuration":{"nesting_mode":"list","block":{"attributes":{"parameter_id":{"type":"string","description_kind":"plain","required":true},"parameter_name":{"type":"string","description_kind":"plain","required":true},"parameter_value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"whitelist":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","required":true},"ip_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dcs_instance_v2":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true,"computed":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"bandwidth_info":{"type":["list",["object",{"bandwidth":"number","begin_time":"string","current_time":"string","end_time":"string","expand_count":"number","expand_effect_time":"number","expand_interval_time":"number","max_expand_count":"number","next_expand_time":"string","task_running":"bool"}]],"description_kind":"plain","computed":true},"cache_mode":{"type":"string","description_kind":"plain","computed":true},"capacity":{"type":"number","description_kind":"plain","required":true},"cpu_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deleted_nodes":{"type":["list","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_name":{"type":"string","description_kind":"plain","computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"launched_at":{"type":"string","description_kind":"plain","computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"private_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_type":{"type":"string","description_kind":"plain","computed":true},"readonly_domain_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"rename_commands":{"type":["map","string"],"description_kind":"plain","optional":true},"replica_count":{"type":"number","description_kind":"plain","computed":true},"reserved_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"sharding_count":{"type":"number","description_kind":"plain","computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"template_id":{"type":"string","description_kind":"plain","optional":true},"transparent_client_ip_enable":{"type":"bool","description_kind":"plain","computed":true},"used_memory":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"backup_policy":{"nesting_mode":"list","block":{"attributes":{"backup_at":{"type":["list","number"],"description_kind":"plain","required":true},"backup_type":{"type":"string","description_kind":"plain","optional":true},"begin_at":{"type":"string","description_kind":"plain","required":true},"period_type":{"type":"string","description_kind":"plain","optional":true},"save_days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"parameters":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"whitelist":{"nesting_mode":"set","block":{"attributes":{"group_name":{"type":"string","description_kind":"plain","required":true},"ip_list":{"type":["list","string"],"description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":4}},"description_kind":"plain"}},"opentelekomcloud_dds_backup_v3":{"version":0,"block":{"attributes":{"begin_time":{"type":"string","description_kind":"plain","computed":true},"datastore":{"type":["list",["object",{"storage_engine":"string","type":"string","version":"string"}]],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"end_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"instance_name":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dds_instance_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","private_ip":"string","public_ip":"string","role":"string","status":"string","type":"string"}]],"description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"pay_mode":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","required":true},"period":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"storage_engine":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"flavor":{"nesting_mode":"list","block":{"attributes":{"num":{"type":"number","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","optional":true},"spec_code":{"type":"string","description_kind":"plain","required":true},"storage":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_deh_host_v1":{"version":0,"block":{"attributes":{"auto_placement":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"available_memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"available_vcpus":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cores":{"type":"number","description_kind":"plain","optional":true,"computed":true},"host_type":{"type":"string","description_kind":"plain","required":true},"host_type_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_total":{"type":"number","description_kind":"plain","optional":true,"computed":true},"instance_uuids":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sockets":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vcpus":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"available_instance_capacities":{"nesting_mode":"list","block":{"attributes":{"flavor":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_direct_connect_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"applicant":{"type":"string","description_kind":"plain","computed":true},"apply_time":{"type":"string","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"building_line_product_id":{"type":"string","description_kind":"plain","computed":true},"cable_label":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"delete_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"hosting_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"interface_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_id":{"type":"string","description_kind":"plain","computed":true},"last_onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mobile":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_port_type":{"type":"string","description_kind":"plain","computed":true},"peer_provider":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","computed":true},"period_type":{"type":"number","description_kind":"plain","computed":true},"port_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_name":{"type":"string","description_kind":"plain","required":true},"provider_status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reason":{"type":"string","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region_id":{"type":"string","description_kind":"plain","computed":true},"service_key":{"type":"string","description_kind":"plain","computed":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vgw_type":{"type":"string","description_kind":"plain","computed":true},"vlan":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_app_v2":{"version":0,"block":{"attributes":{"commit_checkpoint_stream_names":{"type":["list","string"],"description_kind":"plain","computed":true},"created":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition_consuming_states":{"type":["list",["object",{"checkpoint_type":"string","earliest_offset":"number","id":"string","latest_offset":"number","sequence_number":"string","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_checkpoint_v2":{"version":0,"block":{"attributes":{"app_name":{"type":"string","description_kind":"plain","required":true},"checkpoint_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_id":{"type":"string","description_kind":"plain","required":true},"sequence_number":{"type":"string","description_kind":"plain","required":true},"stream_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_dump_task_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"destination":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_transfer_timestamp":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"partitions":{"type":["list",["object",{"hash_range":"string","id":"string","parent_partitions":"string","sequence_number_range":"string","status":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"stream_name":{"type":"string","description_kind":"plain","required":true},"task_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"obs_destination_descriptor":{"nesting_mode":"set","block":{"attributes":{"agency_name":{"type":"string","description_kind":"plain","required":true},"consumer_strategy":{"type":"string","description_kind":"plain","optional":true},"deliver_time_interval":{"type":"number","description_kind":"plain","required":true},"destination_file_type":{"type":"string","description_kind":"plain","optional":true},"file_prefix":{"type":"string","description_kind":"plain","optional":true},"obs_bucket_path":{"type":"string","description_kind":"plain","required":true},"partition_format":{"type":"string","description_kind":"plain","optional":true},"record_delimiter":{"type":"string","description_kind":"plain","optional":true},"task_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"obs_processing_schema":{"nesting_mode":"set","block":{"attributes":{"timestamp_format":{"type":"string","description_kind":"plain","optional":true},"timestamp_name":{"type":"string","description_kind":"plain","required":true},"timestamp_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dis_stream_v2":{"version":0,"block":{"attributes":{"auto_scale_max_partition_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"auto_scale_min_partition_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"compression_format":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"number","description_kind":"plain","computed":true},"data_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition_count":{"type":"number","description_kind":"plain","required":true},"partitions":{"type":["list",["object",{"hash_range":"string","id":"string","parent_partitions":"string","sequence_number_range":"string","status":"string"}]],"description_kind":"plain","computed":true},"readable_partition_count":{"type":"number","description_kind":"plain","computed":true},"retention_period":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"stream_id":{"type":"string","description_kind":"plain","computed":true},"stream_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"writable_partition_count":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_dedicated_instance_v2":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true},"arch_type":{"type":"string","description_kind":"plain","optional":true},"available_zones":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"bandwidth":{"type":"string","description_kind":"plain","computed":true},"broker_num":{"type":"number","description_kind":"plain","required":true},"cert_replaced":{"type":"bool","description_kind":"plain","computed":true},"connect_address":{"type":"string","description_kind":"plain","computed":true},"connector_node_num":{"type":"number","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_encrypted_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"disk_encrypted_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"dumping":{"type":"bool","description_kind":"plain","computed":true},"enable_publicip":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enabled_mechanisms":{"type":["set","string"],"description_kind":"plain","optional":true},"engine":{"type":"string","description_kind":"plain","computed":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"flavor_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"new_tenant_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"node_num":{"type":"number","description_kind":"plain","computed":true},"partition_num":{"type":"number","description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"pod_connect_address":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","computed":true},"public_bandwidth":{"type":"number","description_kind":"plain","computed":true},"public_ip_address":{"type":"string","description_kind":"plain","computed":true},"publicip_id":{"type":["list","string"],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"retention_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"security_protocol":{"type":"string","description_kind":"plain","optional":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ssl_two_way_enable":{"type":"bool","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_resource_id":{"type":"string","description_kind":"plain","computed":true},"storage_space":{"type":"number","description_kind":"plain","required":true},"storage_spec_code":{"type":"string","description_kind":"plain","required":true},"storage_type":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","computed":true},"used_storage_space":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"cross_vpc_accesses":{"nesting_mode":"list","block":{"attributes":{"advertised_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_ip":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","computed":true},"port_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_instance_v1":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true},"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"connect_address":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"partition_num":{"type":"number","description_kind":"plain","optional":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"product_id":{"type":"string","description_kind":"plain","required":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"retention_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_space":{"type":"number","description_kind":"plain","required":true},"storage_spec_code":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"used_storage_space":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_dms_instance_v2":{"version":0,"block":{"attributes":{"access_user":{"type":"string","description_kind":"plain","optional":true},"available_zones":{"type":["list","string"],"description_kind":"plain","required":true},"connect_address":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_encrypted_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"disk_encrypted_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_publicip":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"engine":{"type":"string","description_kind":"plain","required":true},"engine_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maintain_end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_num":{"type":"number","description_kind":"plain","computed":true},"partition_num":{"type":"number","description_kind":"plain","optional":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"product_id":{"type":"string","description_kind":"plain","required":true},"public_access_enabled":{"type":"string","description_kind":"plain","computed":true},"public_bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"public_connect_address":{"type":["list","string"],"description_kind":"plain","computed":true},"publicip_id":{"type":["list","string"],"description_kind":"plain","optional":true},"resource_spec_code":{"type":"string","description_kind":"plain","computed":true},"retention_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"security_group_name":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_resource_id":{"type":"string","description_kind":"plain","computed":true},"storage_space":{"type":"number","description_kind":"plain","required":true},"storage_spec_code":{"type":"string","description_kind":"plain","required":true},"subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"subnet_name":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"total_storage_space":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"used_storage_space":{"type":"number","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"vpc_name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_smart_connect_task_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"destination_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"source_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_later":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"task_name":{"type":"string","description_kind":"plain","required":true},"topics":{"type":["set","string"],"description_kind":"plain","optional":true},"topics_regex":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"destination_task":{"nesting_mode":"list","block":{"attributes":{"access_key":{"type":"string","description_kind":"plain","optional":true},"consumer_strategy":{"type":"string","description_kind":"plain","optional":true},"deliver_time_interval":{"type":"number","description_kind":"plain","optional":true},"destination_file_type":{"type":"string","description_kind":"plain","optional":true},"obs_bucket_name":{"type":"string","description_kind":"plain","optional":true},"obs_path":{"type":"string","description_kind":"plain","optional":true},"partition_format":{"type":"string","description_kind":"plain","optional":true},"record_delimiter":{"type":"string","description_kind":"plain","optional":true},"secret_key":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"store_keys":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"source_task":{"nesting_mode":"list","block":{"attributes":{"compression_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"consumer_strategy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"current_instance_alias":{"type":"string","description_kind":"plain","optional":true,"computed":true},"direction":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"peer_instance_address":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"peer_instance_alias":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_instance_id":{"type":"string","description_kind":"plain","optional":true},"provenance_header_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"rename_topic_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"replication_factor":{"type":"number","description_kind":"plain","optional":true},"sasl_mechanism":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sync_consumer_offsets_enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"task_num":{"type":"number","description_kind":"plain","optional":true},"topics_mapping":{"type":["set","string"],"description_kind":"plain","optional":true},"user_name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_smart_connect_v2":{"version":0,"block":{"attributes":{"bandwidth":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"node_count":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"storage_spec_code":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dms_topic_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_partitions":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"partition":{"type":"number","description_kind":"plain","optional":true,"computed":true},"remain_partitions":{"type":"number","description_kind":"plain","optional":true,"computed":true},"replication":{"type":"number","description_kind":"plain","optional":true,"computed":true},"retention_time":{"type":"number","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"sync_message_flush":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"sync_replication":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_user_permission_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"topic_name":{"type":"string","description_kind":"plain","required":true},"topic_type":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"policies":{"nesting_mode":"list","block":{"attributes":{"access_policy":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"bool","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"opentelekomcloud_dms_user_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"default_app":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"role":{"type":"string","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_dns_ptrrecord_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"floatingip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_recordset_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"records":{"type":["set","string"],"description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true},"zone_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_zone_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"email":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"masters":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"router":{"nesting_mode":"set","block":{"attributes":{"router_id":{"type":"string","description_kind":"plain","required":true},"router_region":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_drs_task_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"destination_db_readonly":{"type":"bool","description_kind":"plain","optional":true},"direction":{"type":"string","description_kind":"plain","required":true},"engine_type":{"type":"string","description_kind":"plain","required":true},"expired_days":{"type":"number","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"migrate_definer":{"type":"bool","description_kind":"plain","optional":true},"migration_type":{"type":"string","description_kind":"plain","optional":true},"multi_write":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"net_type":{"type":"string","description_kind":"plain","optional":true},"node_num":{"type":"number","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"destination_db":{"nesting_mode":"list","block":{"attributes":{"engine_type":{"type":"string","description_kind":"plain","required":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","required":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_cert_check_sum":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_key":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_name":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_password":{"type":"string","description_kind":"plain","optional":true},"ssl_enabled":{"type":"bool","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"limit_speed":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"speed":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":3},"source_db":{"nesting_mode":"list","block":{"attributes":{"engine_type":{"type":"string","description_kind":"plain","required":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","required":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_cert_check_sum":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_key":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_name":{"type":"string","description_kind":"plain","optional":true},"ssl_cert_password":{"type":"string","description_kind":"plain","optional":true},"ssl_enabled":{"type":"bool","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dws_cluster_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_last_manual_snapshot":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"node_type":{"type":"string","description_kind":"plain","required":true},"number_of_cn":{"type":"number","description_kind":"plain","optional":true},"number_of_node":{"type":"number","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"private_ip":{"type":["list","string"],"description_kind":"plain","computed":true},"recent_event":{"type":"number","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"sub_status":{"type":"string","description_kind":"plain","computed":true},"task_status":{"type":"string","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","required":true},"user_pwd":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"endpoints":{"nesting_mode":"list","block":{"attributes":{"connect_info":{"type":"string","description_kind":"plain","computed":true},"jdbc_url":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"public_endpoints":{"nesting_mode":"list","block":{"attributes":{"jdbc_url":{"type":"string","description_kind":"plain","computed":true},"public_connect_info":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"public_ip":{"nesting_mode":"list","block":{"attributes":{"eip_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"public_bind_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ecs_instance_v1":{"version":0,"block":{"attributes":{"auto_recovery":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"delete_disks_on_termination":{"type":"bool","description_kind":"plain","optional":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"security_groups":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"system_disk_id":{"type":"string","description_kind":"plain","computed":true},"system_disk_kms_id":{"type":"string","description_kind":"plain","optional":true},"system_disk_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"system_disk_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"volumes_attached":{"type":["list",["object",{"id":"string","kms_id":"string","size":"number","snapshot_id":"string","type":"string"}]],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"data_disks":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":23},"nics":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","computed":true},"network_id":{"type":"string","description_kind":"plain","required":true},"port_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":12},"os_scheduler_hints":{"nesting_mode":"set","block":{"attributes":{"dedicated_host_id":{"type":"string","description_kind":"plain","optional":true},"group":{"type":"string","description_kind":"plain","optional":true},"tenancy":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_enterprise_vpn_connection_monitor_v5":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description_kind":"plain","required":true},"destination_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"source_ip":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_enterprise_vpn_connection_v5":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"customer_gateway_id":{"type":"string","description_kind":"plain","required":true},"enable_nqa":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"gateway_ip":{"type":"string","description_kind":"plain","required":true},"ha_role":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"peer_subnets":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"psk":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tunnel_local_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tunnel_peer_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpn_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"ikepolicy":{"nesting_mode":"list","block":{"attributes":{"authentication_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"authentication_method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"dh_group":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ike_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifetime_seconds":{"type":"number","description_kind":"plain","optional":true,"computed":true},"local_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_id_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_id_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"phase_one_negotiation_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dpd":{"nesting_mode":"list","block":{"attributes":{"interval":{"type":"number","description_kind":"plain","optional":true,"computed":true},"msg":{"type":"string","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"ipsecpolicy":{"nesting_mode":"list","block":{"attributes":{"authentication_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encapsulation_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifetime_seconds":{"type":"number","description_kind":"plain","optional":true,"computed":true},"pfs":{"type":"string","description_kind":"plain","optional":true,"computed":true},"transform_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"policy_rules":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"rule_index":{"type":"number","description_kind":"plain","optional":true,"computed":true},"source":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_enterprise_vpn_customer_gateway_v5":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id_type":{"type":"string","description_kind":"plain","optional":true},"id_value":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_mode":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_enterprise_vpn_gateway_v5":{"version":0,"block":{"attributes":{"access_private_ip_1":{"type":"string","description_kind":"plain","optional":true,"computed":true},"access_private_ip_2":{"type":"string","description_kind":"plain","optional":true,"computed":true},"access_subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"access_vpc_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"asn":{"type":"number","description_kind":"plain","optional":true},"attachment_type":{"type":"string","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"connect_subnet":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"er_attachment_id":{"type":"string","description_kind":"plain","computed":true},"er_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ha_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_subnets":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"used_connection_group":{"type":"number","description_kind":"plain","computed":true},"used_connection_number":{"type":"number","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"eip1":{"nesting_mode":"list","block":{"attributes":{"bandwidth_id":{"type":"string","description_kind":"plain","computed":true},"bandwidth_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","computed":true},"ip_version":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"eip2":{"nesting_mode":"list","block":{"attributes":{"bandwidth_id":{"type":"string","description_kind":"plain","computed":true},"bandwidth_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","computed":true},"ip_version":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_association_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","required":true},"attachment_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_instance_v3":{"version":0,"block":{"attributes":{"asn":{"type":"number","description_kind":"plain","required":true},"auto_accept_shared_attachments":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_association_route_table_id":{"type":"string","description_kind":"plain","computed":true},"default_propagation_route_table_id":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enable_default_association":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_default_propagation":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_propagation_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","required":true},"attachment_type":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_route_table_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"is_default_association":{"type":"bool","description_kind":"plain","computed":true},"is_default_propagation":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_static_route_v3":{"version":0,"block":{"attributes":{"attachment_id":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_blackhole":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"route_table_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_er_vpc_attachment_v3":{"version":0,"block":{"attributes":{"auto_create_vpc_routes":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_evs_volume_v3":{"version":0,"block":{"attributes":{"attachment":{"type":["set",["object",{"device":"string","id":"string","instance_id":"string"}]],"description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"backup_id":{"type":"string","description_kind":"plain","optional":true},"cascade":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"device_type":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"kms_id":{"type":"string","description_kind":"plain","optional":true},"multiattach":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","required":true},"wwn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fgs_async_invoke_config_v2":{"version":0,"block":{"attributes":{"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_async_event_age_in_seconds":{"type":"number","description_kind":"plain","required":true},"max_async_retry_attempts":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"on_failure":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"param":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"on_success":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"param":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_fgs_event_v2":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_fgs_function_v2":{"version":0,"block":{"attributes":{"agency":{"type":"string","description_kind":"plain","optional":true},"app":{"type":"string","description_kind":"plain","optional":true},"app_agency":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_filename":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"code_url":{"type":"string","description_kind":"plain","optional":true},"concurrency_num":{"type":"number","description_kind":"plain","optional":true,"computed":true},"depend_list":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"dns_list":{"type":"string","description_kind":"plain","computed":true},"encrypted_user_data":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"func_code":{"type":"string","description_kind":"plain","optional":true},"functiongraph_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"gpu_memory":{"type":"number","description_kind":"plain","optional":true},"gpu_type":{"type":"string","description_kind":"plain","computed":true},"handler":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initializer_handler":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initializer_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_topic_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_topic_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_instance_num":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory_size":{"type":"number","description_kind":"plain","required":true},"mount_user_group_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"mount_user_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"runtime":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"timeout":{"type":"number","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"user_data":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"custom_image":{"nesting_mode":"list","block":{"attributes":{"url":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"func_mounts":{"nesting_mode":"list","block":{"attributes":{"local_mount_path":{"type":"string","description_kind":"plain","required":true},"mount_resource":{"type":"string","description_kind":"plain","required":true},"mount_share_path":{"type":"string","description_kind":"plain","required":true},"mount_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"reserved_instances":{"nesting_mode":"set","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"idle_mode":{"type":"bool","description_kind":"plain","optional":true},"qualifier_name":{"type":"string","description_kind":"plain","required":true},"qualifier_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"tactics_config":{"nesting_mode":"list","block":{"block_types":{"cron_configs":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description_kind":"plain","required":true},"cron":{"type":"string","description_kind":"plain","required":true},"expired_time":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versions":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"The version name.","description_kind":"plain","required":true}},"block_types":{"aliases":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fgs_trigger_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"event_data":{"type":"string","description_kind":"plain","required":true},"function_urn":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_firewall_group_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"egress_policy_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ingress_policy_id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ports":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_policy_v2":{"version":0,"block":{"attributes":{"audited":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list","string"],"description_kind":"plain","optional":true},"shared":{"type":"bool","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_fw_rule_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"destination_ip_address":{"type":"string","description_kind":"plain","optional":true},"destination_port":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_ip_address":{"type":"string","description_kind":"plain","optional":true},"source_port":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_gaussdb_mysql_instance_v3":{"version":0,"block":{"attributes":{"alias":{"type":"string","description_kind":"plain","computed":true},"availability_zone_mode":{"type":"string","description_kind":"plain","optional":true},"charging_mode":{"type":"string","description_kind":"plain","computed":true},"configuration_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"configuration_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"db_user_name":{"type":"string","description_kind":"plain","computed":true},"dedicated_resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"dedicated_resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"node_count":{"type":"number","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"az_code":"string","created":"string","flavor_ref":"string","id":"string","max_connections":"string","name":"string","need_restart":"bool","port":"number","priority":"number","private_read_ips":["list","string"],"ram":"string","region_code":"string","status":"string","type":"string","updated":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","computed":true},"private_write_ip":{"type":["list","string"],"description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"read_replicas":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"time_zone":{"type":"string","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"engine":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_identity_acl_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"ip_cidrs":{"nesting_mode":"set","block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":200},"ip_ranges":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"range":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":200}},"description_kind":"plain"}},"opentelekomcloud_identity_agency_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"delegated_domain_name":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_roles":{"type":["set","string"],"description_kind":"plain","optional":true},"duration":{"type":"string","description_kind":"plain","computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"project_role":{"nesting_mode":"set","block":{"attributes":{"project":{"type":"string","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_identity_credential_v3":{"version":0,"block":{"attributes":{"access":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_fingerprint":{"type":"string","description_kind":"plain","computed":true},"last_use_time":{"type":"string","description_kind":"plain","computed":true},"pgp_key":{"type":"string","description_kind":"plain","optional":true},"secret":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_membership_v3":{"version":0,"block":{"attributes":{"group":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"users":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_login_policy_v3":{"version":0,"block":{"attributes":{"account_validity_period":{"type":"number","description_kind":"plain","optional":true},"custom_info_for_login":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lockout_duration":{"type":"number","description_kind":"plain","optional":true,"computed":true},"login_failed_times":{"type":"number","description_kind":"plain","optional":true,"computed":true},"period_with_login_failures":{"type":"number","description_kind":"plain","optional":true,"computed":true},"session_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"show_recent_login_info":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_mapping_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"mapping_id":{"type":"string","description_kind":"plain","required":true},"rules":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_password_policy_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"maximum_consecutive_identical_chars":{"type":"number","description_kind":"plain","optional":true,"computed":true},"maximum_password_length":{"type":"number","description_kind":"plain","computed":true},"minimum_password_age":{"type":"number","description_kind":"plain","optional":true,"computed":true},"minimum_password_length":{"type":"number","description_kind":"plain","optional":true},"number_of_recent_passwords_disallowed":{"type":"number","description_kind":"plain","optional":true},"password_not_username_or_invert":{"type":"bool","description_kind":"plain","optional":true},"password_requirements":{"type":"string","description_kind":"plain","computed":true},"password_validity_period":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_project_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_domain":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_protection_policy_v3":{"version":0,"block":{"attributes":{"enable_operation_protection_policy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_protocol_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"mapping_id":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"provider_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","required":true},"authorization_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true},"client_id":{"type":"string","description_kind":"plain","required":true},"provider_url":{"type":"string","description_kind":"plain","required":true},"response_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"response_type":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"signing_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"metadata":{"nesting_mode":"list","block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","required":true},"metadata":{"type":"string","description_kind":"plain","required":true},"xaccount_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_provider":{"version":0,"block":{"attributes":{"conversion_rules":{"type":["list",["object",{"local":["list",["object",{"group":"string","groups":"string","username":"string"}]],"remote":["list",["object",{"attribute":"string","condition":"string","value":["list","string"]}]]}]],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"login_link":{"type":"string","description_kind":"plain","computed":true},"mapping_rules":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"access_config":{"nesting_mode":"list","block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","required":true},"authorization_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true},"client_id":{"type":"string","description_kind":"plain","required":true},"provider_url":{"type":"string","description_kind":"plain","required":true},"response_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"response_type":{"type":"string","description_kind":"plain","optional":true},"scopes":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"signing_key":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_provider_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"remote_ids":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_assignment_v3":{"version":0,"block":{"attributes":{"all_projects":{"type":"bool","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","optional":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"role_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_v3":{"version":0,"block":{"attributes":{"catalog":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","required":true},"display_layer":{"type":"string","description_kind":"plain","required":true},"display_name":{"type":"string","description_kind":"plain","required":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"statement":{"nesting_mode":"list","block":{"attributes":{"action":{"type":["list","string"],"description_kind":"plain","required":true},"condition":{"type":"string","description_kind":"plain","optional":true},"effect":{"type":"string","description_kind":"plain","required":true},"resource":{"type":["list","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"opentelekomcloud_identity_user_group_membership_v3":{"version":0,"block":{"attributes":{"groups":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_identity_user_v3":{"version":0,"block":{"attributes":{"access_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"country_code":{"type":"string","description_kind":"plain","optional":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_login":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"password":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"password_strength":{"type":"string","description_kind":"plain","computed":true},"phone":{"type":"string","description_kind":"plain","optional":true},"pwd_reset":{"type":"bool","description_kind":"plain","optional":true},"send_welcome_email":{"type":"bool","description_kind":"plain","optional":true},"xuser_id":{"type":"string","description_kind":"plain","computed":true},"xuser_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"login_protection":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"verification_method":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_images_image_access_accept_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"member_id":{"type":"string","description_kind":"plain","required":true},"schema":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_access_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","required":true},"member_id":{"type":"string","description_kind":"plain","required":true},"schema":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_v2":{"version":0,"block":{"attributes":{"checksum":{"type":"string","description_kind":"plain","computed":true},"container_format":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"disk_format":{"type":"string","description_kind":"plain","required":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_cache_path":{"type":"string","description_kind":"plain","optional":true},"image_source_url":{"type":"string","description_kind":"plain","optional":true},"local_file_path":{"type":"string","description_kind":"plain","optional":true},"min_disk_gb":{"type":"number","description_kind":"plain","optional":true},"min_ram_mb":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"protected":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"schema":{"type":"string","description_kind":"plain","computed":true},"size_bytes":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description_kind":"plain","optional":true},"update_at":{"type":"string","description_kind":"plain","computed":true},"visibility":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ims_data_image_v2":{"version":0,"block":{"attributes":{"cmk_id":{"type":"string","description_kind":"plain","optional":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_size":{"type":"string","description_kind":"plain","computed":true},"image_url":{"type":"string","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_type":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_ims_image_v2":{"version":0,"block":{"attributes":{"cmk_id":{"type":"string","description_kind":"plain","optional":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_size":{"type":"string","description_kind":"plain","computed":true},"image_url":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"is_config":{"type":"bool","description_kind":"plain","optional":true},"max_ram":{"type":"number","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"os_version":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"visibility":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_kms_grant_v1":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"grantee_principal":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuing_principal":{"type":"string","description_kind":"plain","computed":true},"key_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"operations":{"type":["set","string"],"description_kind":"plain","optional":true},"retiring_principal":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_kms_key_v1":{"version":0,"block":{"attributes":{"allow_cancel_deletion":{"type":"bool","description_kind":"plain","optional":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"default_key_flag":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"expiration_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_enabled":{"type":"bool","description_kind":"plain","optional":true},"key_alias":{"type":"string","description_kind":"plain","required":true},"key_description":{"type":"string","description_kind":"plain","optional":true},"origin":{"type":"string","description_kind":"plain","computed":true},"pending_days":{"type":"string","description_kind":"plain","optional":true},"realm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rotation_enabled":{"type":"bool","description_kind":"plain","optional":true},"rotation_interval":{"type":"number","description_kind":"plain","optional":true,"computed":true},"rotation_number":{"type":"number","description_kind":"plain","computed":true},"scheduled_deletion_date":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v2":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","required":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"private_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"update_time":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v3":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"private_key":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_ipgroup_v3":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listeners":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"ip_list":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"ip":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_l7policy_v2":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"position":{"type":"number","description_kind":"plain","optional":true,"computed":true},"redirect_listener_id":{"type":"string","description_kind":"plain","optional":true},"redirect_pool_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_l7rule_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"compare_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","optional":true},"l7policy_id":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true},"transparent_client_ip_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"block_types":{"ip_group":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"advanced_forwarding":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"client_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_alive_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","required":true},"member_retry_enable":{"type":"bool","description_kind":"plain","optional":true},"member_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"security_policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","optional":true},"sni_match_algo":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"insert_headers":{"nesting_mode":"list","block":{"attributes":{"forward_elb_ip":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_for_port":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_host":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"forwarded_port":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"ip_group":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_provider":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true},"vip_subnet_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"availability_zones":{"type":["set","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_target_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"l4_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"l7_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_ids":{"type":["set","string"],"description_kind":"plain","required":true},"router_id":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"public_ip":{"nesting_mode":"list","block":{"attributes":{"_managed":{"type":"bool","description_kind":"plain","computed":true},"address":{"type":"string","description_kind":"plain","computed":true},"bandwidth_charge_mode":{"type":"string","description_kind":"plain","optional":true},"bandwidth_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_share_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_member_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_member_v3":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description_kind":"plain","computed":true},"member_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"operating_status":{"type":"string","description_kind":"plain","computed":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol_port":{"type":"number","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"weight":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_monitor_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"delay":{"type":"number","description_kind":"plain","required":true},"domain_name":{"type":"string","description_kind":"plain","optional":true},"expected_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"http_method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_retries":{"type":"number","description_kind":"plain","required":true},"monitor_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"url_path":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_monitor_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"delay":{"type":"number","description_kind":"plain","required":true},"domain_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expected_codes":{"type":"string","description_kind":"plain","optional":true,"computed":true},"http_method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_retries":{"type":"number","description_kind":"plain","required":true},"max_retries_down":{"type":"number","description_kind":"plain","optional":true,"computed":true},"monitor_port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"url_path":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_policy_v3":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redirect_listener_id":{"type":"string","description_kind":"plain","optional":true},"redirect_pool_id":{"type":"string","description_kind":"plain","optional":true},"redirect_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"fixed_response_config":{"nesting_mode":"set","block":{"attributes":{"content_type":{"type":"string","description_kind":"plain","optional":true},"message_body":{"type":"string","description_kind":"plain","optional":true},"status_code":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"redirect_pools_config":{"nesting_mode":"set","block":{"attributes":{"pool_id":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"redirect_url_config":{"nesting_mode":"set","block":{"attributes":{"host":{"type":"string","description_kind":"plain","optional":true},"path":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"query":{"type":"string","description_kind":"plain","optional":true},"status_code":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"rules":{"nesting_mode":"set","block":{"attributes":{"compare_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":10}},"description_kind":"plain"}},"opentelekomcloud_lb_pool_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_method":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"persistence":{"nesting_mode":"list","block":{"attributes":{"cookie_name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_pool_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"string","description_kind":"plain","computed":true},"lb_algorithm":{"type":"string","description_kind":"plain","required":true},"listener_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"member_deletion_protection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"session_persistence":{"nesting_mode":"list","block":{"attributes":{"cookie_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"persistence_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_lb_rule_v3":{"version":0,"block":{"attributes":{"compare_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rule_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"block_types":{"conditions":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_lb_security_policy_v3":{"version":0,"block":{"attributes":{"ciphers":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"protocols":{"type":["list","string"],"description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_whitelist_v2":{"version":0,"block":{"attributes":{"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"listener_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"whitelist":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_group_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"group_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ttl_in_days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_topic_v2":{"version":0,"block":{"attributes":{"creation_time":{"type":"number","description_kind":"plain","computed":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_logtank_transfer_v2":{"version":0,"block":{"attributes":{"create_time":{"type":"number","description_kind":"plain","computed":true},"dir_prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","required":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_stream_ids":{"type":["set","string"],"description_kind":"plain","required":true},"log_transfer_mode":{"type":"string","description_kind":"plain","computed":true},"log_transfer_type":{"type":"string","description_kind":"plain","computed":true},"obs_bucket_name":{"type":"string","description_kind":"plain","required":true},"obs_encryption_enable":{"type":"bool","description_kind":"plain","computed":true},"obs_encryption_id":{"type":"string","description_kind":"plain","computed":true},"period":{"type":"number","description_kind":"plain","required":true},"period_unit":{"type":"string","description_kind":"plain","required":true},"prefix_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"storage_format":{"type":"string","description_kind":"plain","required":true},"switch_on":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_mrs_cluster_v1":{"version":0,"block":{"attributes":{"available_zone_id":{"type":"string","description_kind":"plain","required":true},"available_zone_name":{"type":"string","description_kind":"plain","computed":true},"billing_type":{"type":"number","description_kind":"plain","required":true},"charging_start_time":{"type":"string","description_kind":"plain","computed":true},"cluster_admin_secret":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description_kind":"plain","required":true},"cluster_state":{"type":"string","description_kind":"plain","computed":true},"cluster_type":{"type":"number","description_kind":"plain","optional":true,"computed":true},"cluster_version":{"type":"string","description_kind":"plain","required":true},"core_data_volume_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"core_data_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"core_data_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"core_node_num":{"type":"number","description_kind":"plain","required":true},"core_node_product_id":{"type":"string","description_kind":"plain","computed":true},"core_node_size":{"type":"string","description_kind":"plain","required":true},"core_node_spec_id":{"type":"string","description_kind":"plain","computed":true},"create_at":{"type":"string","description_kind":"plain","computed":true},"deployment_id":{"type":"string","description_kind":"plain","computed":true},"error_info":{"type":"string","description_kind":"plain","computed":true},"external_alternate_ip":{"type":"string","description_kind":"plain","computed":true},"external_ip":{"type":"string","description_kind":"plain","computed":true},"fee":{"type":"string","description_kind":"plain","computed":true},"hadoop_version":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","computed":true},"internal_ip":{"type":"string","description_kind":"plain","computed":true},"log_collection":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_count":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"master_data_volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_node_ip":{"type":"string","description_kind":"plain","computed":true},"master_node_num":{"type":"number","description_kind":"plain","required":true},"master_node_product_id":{"type":"string","description_kind":"plain","computed":true},"master_node_size":{"type":"string","description_kind":"plain","required":true},"master_node_spec_id":{"type":"string","description_kind":"plain","computed":true},"node_public_cert_name":{"type":"string","description_kind":"plain","required":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"private_ip_first":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remark":{"type":"string","description_kind":"plain","computed":true},"safe_mode":{"type":"number","description_kind":"plain","required":true},"security_groups_id":{"type":"string","description_kind":"plain","computed":true},"slave_security_groups_id":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"update_at":{"type":"string","description_kind":"plain","computed":true},"vnc":{"type":"string","description_kind":"plain","computed":true},"volume_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"add_jobs":{"nesting_mode":"list","block":{"attributes":{"arguments":{"type":"string","description_kind":"plain","optional":true,"computed":true},"file_action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"hive_script_path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"hql":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input":{"type":"string","description_kind":"plain","optional":true,"computed":true},"jar_path":{"type":"string","description_kind":"plain","required":true},"job_log":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_name":{"type":"string","description_kind":"plain","required":true},"job_type":{"type":"number","description_kind":"plain","required":true},"output":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shutdown_cluster":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"submit_job_once_cluster_run":{"type":"bool","description_kind":"plain","required":true}},"description_kind":"plain"}},"bootstrap_scripts":{"nesting_mode":"list","block":{"attributes":{"active_master":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"before_component_start":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"fail_action":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list","string"],"description_kind":"plain","required":true},"parameters":{"type":"string","description_kind":"plain","optional":true,"computed":true},"uri":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"component_list":{"nesting_mode":"set","block":{"attributes":{"component_desc":{"type":"string","description_kind":"plain","computed":true},"component_id":{"type":"string","description_kind":"plain","computed":true},"component_name":{"type":"string","description_kind":"plain","required":true},"component_version":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_mrs_job_v1":{"version":0,"block":{"attributes":{"arguments":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"hive_script_path":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_protected":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"jar_path":{"type":"string","description_kind":"plain","required":true},"job_log":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_name":{"type":"string","description_kind":"plain","required":true},"job_state":{"type":"string","description_kind":"plain","computed":true},"job_type":{"type":"number","description_kind":"plain","required":true},"output":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_dnat_rule_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"external_service_port":{"type":"number","description_kind":"plain","required":true},"floating_ip_address":{"type":"string","description_kind":"plain","computed":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_service_port":{"type":"number","description_kind":"plain","required":true},"nat_gateway_id":{"type":"string","description_kind":"plain","required":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_gateway_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_network_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"spec":{"type":"string","description_kind":"plain","required":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_nat_snat_rule_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_gateway_id":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source_type":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_floatingip_associate_v2":{"version":0,"block":{"attributes":{"floating_ip":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_networking_floatingip_v2":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_network_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"segments":{"nesting_mode":"list","block":{"attributes":{"network_type":{"type":"string","description_kind":"plain","optional":true},"physical_network":{"type":"string","description_kind":"plain","optional":true},"segmentation_id":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_port_secgroup_associate_v2":{"version":0,"block":{"attributes":{"all_security_group_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"force":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"all_fixed_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_owner":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_security_groups":{"type":"bool","description_kind":"plain","optional":true},"port_security_enabled":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"allowed_address_pairs":{"nesting_mode":"set","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","required":true},"mac_address":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"extra_dhcp_option":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"fixed_ip":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_router_interface_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_router_route_v2":{"version":0,"block":{"attributes":{"destination_cidr":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"next_hop":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_networking_router_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"distributed":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_snat":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"external_gateway":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_rule_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"direction":{"type":"string","description_kind":"plain","required":true},"ethertype":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_range_max":{"type":"number","description_kind":"plain","optional":true},"port_range_min":{"type":"number","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remote_group_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remote_ip_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_v2":{"version":0,"block":{"attributes":{"delete_default_rules":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_subnet_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"dns_nameservers":{"type":["set","string"],"description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description_kind":"plain","optional":true},"gateway_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_version":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_gateway":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"allocation_pools":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"string","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"host_routes":{"nesting_mode":"list","block":{"attributes":{"destination_cidr":{"type":"string","description_kind":"plain","required":true},"next_hop":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_networking_vip_associate_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_ids":{"type":["set","string"],"description_kind":"plain","required":true},"vip_id":{"type":"string","description_kind":"plain","required":true},"vip_ip_address":{"type":"string","description_kind":"plain","computed":true},"vip_subnet_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_networking_vip_v2":{"version":0,"block":{"attributes":{"device_owner":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"bucket_version":{"type":"string","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parallel_fs":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"storage_class":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_domain_names":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"versioning":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_notifications":{"nesting_mode":"list","block":{"attributes":{"events":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description_kind":"plain","required":true}},"block_types":{"filter_rule":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"noncurrent_version_expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"noncurrent_version_transition":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true},"storage_class":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"transition":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","required":true},"storage_class":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"logging":{"nesting_mode":"set","block":{"attributes":{"target_bucket":{"type":"string","description_kind":"plain","required":true},"target_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"server_side_encryption":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description_kind":"plain","required":true},"kms_key_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"error_document":{"type":"string","description_kind":"plain","optional":true},"index_document":{"type":"string","description_kind":"plain","optional":true},"redirect_all_requests_to":{"type":"string","description_kind":"plain","optional":true},"routing_rules":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"worm_policy":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description_kind":"plain","optional":true},"years":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_inventory":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"configuration_id":{"type":"string","description_kind":"plain","required":true},"filter_prefix":{"type":"string","description_kind":"plain","optional":true,"computed":true},"frequency":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"included_object_versions":{"type":"string","description_kind":"plain","required":true},"is_enabled":{"type":"bool","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"destination":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"format":{"type":"string","description_kind":"plain","required":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_object":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true},"encryption":{"type":"bool","description_kind":"plain","optional":true},"etag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"kms_key_id":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","computed":true},"source":{"type":"string","description_kind":"plain","optional":true},"storage_class":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_replication":{"version":0,"block":{"attributes":{"agency":{"type":"string","description_kind":"plain","required":true},"bucket":{"type":"string","description_kind":"plain","required":true},"destination_bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"delete_data":{"type":"bool","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"history_enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"prefix":{"type":"string","description_kind":"plain","optional":true},"storage_class":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rds_backup_v3":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","computed":true},"begin_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"databases":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rds_instance_v1":{"version":0,"block":{"attributes":{"availabilityzone":{"type":"string","description_kind":"plain","required":true},"created":{"type":"string","description_kind":"plain","computed":true},"dbport":{"type":"string","description_kind":"plain","optional":true},"dbrtpd":{"type":"string","description_kind":"plain","required":true},"flavorref":{"type":"string","description_kind":"plain","required":true},"hostname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tag":{"type":["map","string"],"description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true},"vpc":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backupstrategy":{"nesting_mode":"list","block":{"attributes":{"keepdays":{"type":"number","description_kind":"plain","optional":true},"starttime":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"ha":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description_kind":"plain","optional":true},"replicationmode":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"nics":{"nesting_mode":"list","block":{"attributes":{"subnetid":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"securitygroup":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"size":{"type":"number","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_rds_instance_v3":{"version":0,"block":{"attributes":{"autoscaling_enabled":{"type":"bool","description_kind":"plain","computed":true},"availability_zone":{"type":["list","string"],"description_kind":"plain","required":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"ha_replication_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lower_case_table_names":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"availability_zone":"string","id":"string","name":"string","role":"string","status":"string"}]],"description_kind":"plain","computed":true},"param_group_id":{"type":"string","description_kind":"plain","optional":true},"parameters":{"type":["map","string"],"description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["list","string"],"description_kind":"plain","optional":true},"restored_backup_id":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"tag":{"type":["map","string"],"description_kind":"plain","deprecated":true,"optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"backup_strategy":{"nesting_mode":"list","block":{"attributes":{"keep_days":{"type":"number","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"db":{"nesting_mode":"list","block":{"attributes":{"password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"restore_from_backup":{"nesting_mode":"list","block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"restore_time":{"type":"number","description_kind":"plain","optional":true},"source_instance_id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"restore_point":{"nesting_mode":"list","block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"restore_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_size":{"type":"number","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"trigger_threshold":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rds_maintenance_v3":{"version":0,"block":{"attributes":{"end_time":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rds_parametergroup_v3":{"version":0,"block":{"attributes":{"configuration_parameters":{"type":["list",["object",{"description":"string","name":"string","readonly":"bool","restart_required":"bool","type":"string","value":"string","value_range":"string"}]],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"updated":{"type":"string","description_kind":"plain","computed":true},"values":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"datastore":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rds_read_replica_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"db":{"type":["list",["object",{"port":"number","type":"string","user_name":"string","version":"string"}]],"description_kind":"plain","computed":true},"flavor_ref":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"private_ips":{"type":["set","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"replica_of_id":{"type":"string","description_kind":"plain","required":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"ssl_enable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"volume":{"nesting_mode":"list","block":{"attributes":{"disk_encryption_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_rts_software_config_v1":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","optional":true},"group":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_values":{"type":["list",["map","string"]],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"options":{"type":["map","string"],"description_kind":"plain","optional":true},"output_values":{"type":["list",["map","string"]],"description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rts_software_deployment_v1":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"config_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_values":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"output_values":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status_reason":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_v1":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description_kind":"plain","computed":true},"disable_rollback":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"environment":{"type":"string","description_kind":"plain","optional":true},"files":{"type":["map","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"notification_topics":{"type":["set","string"],"description_kind":"plain","computed":true},"outputs":{"type":["map","string"],"description_kind":"plain","computed":true},"parameters":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"status_reason":{"type":"string","description_kind":"plain","computed":true},"template_body":{"type":"string","description_kind":"plain","optional":true,"computed":true},"template_url":{"type":"string","description_kind":"plain","optional":true},"timeout_mins":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"arn":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bucket":{"type":"string","description_kind":"plain","optional":true,"computed":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"bucket_prefix":{"type":"string","description_kind":"plain","optional":true},"force_destroy":{"type":"bool","description_kind":"plain","optional":true},"hosted_zone_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"website_domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_endpoint":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"abort_incomplete_multipart_upload_days":{"type":"number","description_kind":"plain","optional":true},"enabled":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"set","block":{"attributes":{"date":{"type":"string","description_kind":"plain","optional":true},"days":{"type":"number","description_kind":"plain","optional":true},"expired_object_delete_marker":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"noncurrent_version_expiration":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"logging":{"nesting_mode":"set","block":{"attributes":{"target_bucket":{"type":"string","description_kind":"plain","required":true},"target_prefix":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true},"mfa_delete":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"website":{"nesting_mode":"list","block":{"attributes":{"error_document":{"type":"string","description_kind":"plain","optional":true},"index_document":{"type":"string","description_kind":"plain","optional":true},"redirect_all_requests_to":{"type":"string","description_kind":"plain","optional":true},"routing_rules":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_object":{"version":0,"block":{"attributes":{"acl":{"type":"string","description_kind":"plain","optional":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","optional":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description_kind":"plain","optional":true},"content_language":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"etag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"server_side_encryption":{"type":"string","description_kind":"plain","optional":true,"computed":true},"source":{"type":"string","description_kind":"plain","optional":true},"sse_kms_key_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version_id":{"type":"string","description_kind":"plain","computed":true},"website_redirect":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_sdrs_protected_instance_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"delete_target_eip":{"type":"bool","description_kind":"plain","optional":true},"delete_target_server":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"priority_station":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"target_id":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_protectiongroup_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domain_id":{"type":"string","description_kind":"plain","required":true},"dr_type":{"type":"string","description_kind":"plain","optional":true},"enable":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"source_availability_zone":{"type":"string","description_kind":"plain","required":true},"source_vpc_id":{"type":"string","description_kind":"plain","required":true},"target_availability_zone":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_replication_attach_v1":{"version":0,"block":{"attributes":{"device":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"replication_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sdrs_replication_pair_v1":{"version":0,"block":{"attributes":{"delete_target_volume":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"fault_level":{"type":"string","description_kind":"plain","computed":true},"group_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"replication_model":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"target_volume_id":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sfs_file_system_v2":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"access_rule_status":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"access_type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"host":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description_kind":"plain","optional":true},"metadata":{"type":["map","string"],"description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","optional":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_sfs_share_access_rules_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"access_rule":{"nesting_mode":"list","block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","required":true},"access_rule_status":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","required":true},"access_type":{"type":"string","description_kind":"plain","optional":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":1,"max_items":20}},"description_kind":"plain"}},"opentelekomcloud_sfs_turbo_share_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","required":true},"available_capacity":{"type":"string","description_kind":"plain","computed":true},"crypt_key_id":{"type":"string","description_kind":"plain","optional":true},"enhanced":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"expand_type":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true},"share_proto":{"type":"string","description_kind":"plain","optional":true},"share_type":{"type":"string","description_kind":"plain","optional":true},"size":{"type":"number","description_kind":"plain","required":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_smn_subscription_v2":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","required":true},"remark":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"number","description_kind":"plain","computed":true},"subscription_urn":{"type":"string","description_kind":"plain","computed":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_smn_topic_attribute_v2":{"version":0,"block":{"attributes":{"attribute_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"topic_attribute":{"type":"string","description_kind":"plain","required":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_smn_topic_v2":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"push_policy":{"type":"number","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"topic_urn":{"type":"string","description_kind":"plain","computed":true},"update_time":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_swr_domain_v2":{"version":0,"block":{"attributes":{"access_domain":{"type":"string","description_kind":"plain","required":true},"created":{"type":"string","description_kind":"plain","computed":true},"creator_id":{"type":"string","description_kind":"plain","computed":true},"creator_name":{"type":"string","description_kind":"plain","computed":true},"deadline":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"permission":{"type":"string","description_kind":"plain","required":true},"repository":{"type":"string","description_kind":"plain","required":true},"status":{"type":"bool","description_kind":"plain","computed":true},"updated":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_organization_permissions_v2":{"version":0,"block":{"attributes":{"auth":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_organization_v2":{"version":0,"block":{"attributes":{"auth":{"type":"number","description_kind":"plain","computed":true},"creator_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"organization_id":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_swr_repository_v2":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_path":{"type":"string","description_kind":"plain","computed":true},"is_public":{"type":"bool","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"num_images":{"type":"number","description_kind":"plain","computed":true},"organization":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","computed":true},"repository_id":{"type":"number","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_tms_tags_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"tags":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_policy_v2":{"version":0,"block":{"attributes":{"frequency":{"type":"number","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_resource_count":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rentention_day":{"type":"number","description_kind":"plain","optional":true},"rentention_num":{"type":"number","description_kind":"plain","optional":true},"resources":{"type":["list","string"],"description_kind":"plain","optional":true},"retain_first_backup":{"type":"string","description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true},"week_frequency":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_share_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"backup_id":{"type":"string","description_kind":"plain","required":true},"backup_name":{"type":"string","description_kind":"plain","computed":true},"backup_status":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"share_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","computed":true},"to_project_ids":{"type":["set","string"],"description_kind":"plain","required":true},"volume_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth_associate_v2":{"version":0,"block":{"attributes":{"backup_charge_mode":{"type":"string","description_kind":"plain","optional":true},"backup_size":{"type":"number","description_kind":"plain","optional":true},"bandwidth":{"type":"string","description_kind":"plain","required":true},"floating_ips":{"type":["set","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_eip_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"unbind_port":{"type":"bool","description_kind":"plain","optional":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"bandwidth":{"nesting_mode":"list","block":{"attributes":{"charge_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"share_type":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"publicip":{"nesting_mode":"list","block":{"attributes":{"ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_flow_log_v1":{"version":0,"block":{"attributes":{"admin_state":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"log_group_id":{"type":"string","description_kind":"plain","required":true},"log_topic_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true},"resource_id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_accepter_v2":{"version":0,"block":{"attributes":{"accept":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"peer_tenant_id":{"type":"string","description_kind":"plain","computed":true},"peer_vpc_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true},"vpc_peering_connection_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"peer_tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"peer_vpc_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_table_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnets":{"type":["set","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"route":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"destination":{"type":"string","description_kind":"plain","required":true},"nexthop":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":200},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_v2":{"version":0,"block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nexthop":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cidr":{"type":"string","description_kind":"plain","required":true},"cidr_ipv6":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"dhcp_enable":{"type":"bool","description_kind":"plain","optional":true},"dns_list":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"gateway_ip":{"type":"string","description_kind":"plain","required":true},"gateway_ipv6":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6_enable":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"ntp_addresses":{"type":"string","description_kind":"plain","optional":true},"primary_dns":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_dns":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpc_v1":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_cidr":{"type":"string","description_kind":"plain","optional":true},"shared":{"type":"bool","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpcep_endpoint_v1":{"version":0,"block":{"attributes":{"dns_names":{"type":["set","string"],"description_kind":"plain","computed":true},"enable_dns":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"enable_whitelist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"marker_id":{"type":"number","description_kind":"plain","computed":true},"port_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"route_tables":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"whitelist":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpcep_service_v1":{"version":0,"block":{"attributes":{"approval_enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port_id":{"type":"string","description_kind":"plain","required":true},"server_type":{"type":"string","description_kind":"plain","required":true},"service_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"tcp_proxy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true},"whitelist":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"block_types":{"port":{"nesting_mode":"set","block":{"attributes":{"client_port":{"type":"number","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"server_port":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":200},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_endpoint_group_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"endpoints":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_ike_policy_v2":{"version":0,"block":{"attributes":{"auth_algorithm":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ike_version":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"pfs":{"type":"string","description_kind":"plain","optional":true},"phase1_negotiation_mode":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"lifetime":{"nesting_mode":"set","block":{"attributes":{"units":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_ipsec_policy_v2":{"version":0,"block":{"attributes":{"auth_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"encapsulation_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encryption_algorithm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"pfs":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"transform_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"lifetime":{"nesting_mode":"set","block":{"attributes":{"units":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_service_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"external_v4_ip":{"type":"string","description_kind":"plain","computed":true},"external_v6_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_site_connection_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ikepolicy_id":{"type":"string","description_kind":"plain","required":true},"initiator":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipsecpolicy_id":{"type":"string","description_kind":"plain","required":true},"local_ep_group_id":{"type":"string","description_kind":"plain","optional":true},"local_id":{"type":"string","description_kind":"plain","optional":true},"mtu":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"peer_address":{"type":"string","description_kind":"plain","required":true},"peer_cidrs":{"type":["list","string"],"description_kind":"plain","optional":true},"peer_ep_group_id":{"type":"string","description_kind":"plain","optional":true},"peer_id":{"type":"string","description_kind":"plain","required":true},"psk":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value_specs":{"type":["map","string"],"description_kind":"plain","optional":true},"vpnservice_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"dpd":{"nesting_mode":"set","block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interval":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_alarm_notification_v1":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"locale":{"type":"string","description_kind":"plain","optional":true,"computed":true},"send_frequency":{"type":"number","description_kind":"plain","required":true},"threat":{"type":["set","string"],"description_kind":"plain","required":true},"times":{"type":"number","description_kind":"plain","required":true},"topic_urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_waf_ccattackprotection_rule_v1":{"version":0,"block":{"attributes":{"action_category":{"type":"string","description_kind":"plain","required":true},"block_content":{"type":"string","description_kind":"plain","optional":true},"block_content_type":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_num":{"type":"number","description_kind":"plain","required":true},"limit_period":{"type":"number","description_kind":"plain","required":true},"lock_time":{"type":"number","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"tag_category":{"type":"string","description_kind":"plain","optional":true},"tag_contents":{"type":["list","string"],"description_kind":"plain","optional":true},"tag_index":{"type":"string","description_kind":"plain","optional":true},"tag_type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_certificate_v1":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_datamasking_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_alarm_masking_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"domains":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"rule":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"advanced_settings":{"nesting_mode":"list","block":{"attributes":{"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_anti_crawler_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logic":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"protection_mode":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_anti_leakage_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_blacklist_rule_v1":{"version":0,"block":{"attributes":{"action":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"followed_action_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_cc_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"limit_num":{"type":"number","description_kind":"plain","required":true},"limit_period":{"type":"number","description_kind":"plain","required":true},"lock_time":{"type":"number","description_kind":"plain","optional":true},"mode":{"type":"number","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"tag_category":{"type":"string","description_kind":"plain","optional":true},"tag_contents":{"type":["list","string"],"description_kind":"plain","optional":true},"tag_index":{"type":"string","description_kind":"plain","optional":true},"tag_type":{"type":"string","description_kind":"plain","required":true},"unlock_num":{"type":"number","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"content":{"type":"string","description_kind":"plain","optional":true},"content_type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","required":true},"value_list_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_certificate_v1":{"version":0,"block":{"attributes":{"content":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_data_masking_rule_v1":{"version":0,"block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_domain_v1":{"version":0,"block":{"attributes":{"access_status":{"type":"number","description_kind":"plain","computed":true},"alarm_page":{"type":["map","string"],"description_kind":"plain","computed":true},"certificate_id":{"type":"string","description_kind":"plain","optional":true},"certificate_name":{"type":"string","description_kind":"plain","computed":true},"cipher":{"type":"string","description_kind":"plain","optional":true,"computed":true},"compliance_certification":{"type":["map","bool"],"description_kind":"plain","computed":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_policy":{"type":"bool","description_kind":"plain","optional":true},"pci_3ds":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pci_dss":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protect_status":{"type":"number","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description_kind":"plain","computed":true},"proxy":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tls":{"type":"string","description_kind":"plain","optional":true,"computed":true},"traffic_identifier":{"type":["map","string"],"description_kind":"plain","computed":true}},"block_types":{"server":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"client_protocol":{"type":"string","description_kind":"plain","required":true},"port":{"type":"number","description_kind":"plain","required":true},"server_protocol":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":80},"timeout_config":{"nesting_mode":"list","block":{"attributes":{"connect_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"read_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true},"send_timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_geo_ip_rule_v1":{"version":0,"block":{"attributes":{"action":{"type":"number","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"region_code":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_instance_v1":{"version":0,"block":{"attributes":{"access_status":{"type":"number","description_kind":"plain","computed":true},"architecture":{"type":"string","description_kind":"plain","optional":true},"availability_zone":{"type":"string","description_kind":"plain","required":true},"billing_status":{"type":"number","description_kind":"plain","computed":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"res_tenant":{"type":"bool","description_kind":"plain","optional":true},"security_group":{"type":["list","string"],"description_kind":"plain","required":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"service_ip":{"type":"string","description_kind":"plain","computed":true},"specification":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true},"upgradable":{"type":"bool","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_known_attack_source_rule_v1":{"version":0,"block":{"attributes":{"block_time":{"type":"number","description_kind":"plain","required":true},"category":{"type":"string","description_kind":"plain","required":true},"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_policy_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"deep_inspection":{"type":"bool","description_kind":"plain","optional":true},"domains":{"type":["list","string"],"description_kind":"plain","computed":true},"full_detection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"header_inspection":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"level":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"protection_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shiro_decryption_check":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"options":{"nesting_mode":"list","block":{"attributes":{"anti_crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"anti_leakage":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"anti_tamper":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"blacklist":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"bot_enable":{"type":"bool","description_kind":"plain","computed":true},"cc":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"common":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_engine":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_other":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_scanner":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_script":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"custom":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"followed_action":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"geolocation_access_control":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ignore":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"precise":{"type":"bool","description_kind":"plain","computed":true},"privacy":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"web_attack":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"web_shell":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_precise_protection_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"priority":{"type":"number","description_kind":"plain","required":true},"start":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"number","description_kind":"plain","computed":true},"terminal":{"type":"number","description_kind":"plain","optional":true},"time":{"type":"bool","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"set","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"followed_action_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","optional":true},"contents":{"type":["list","string"],"description_kind":"plain","optional":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic_operation":{"type":"string","description_kind":"plain","optional":true},"value_list_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_reference_table_v1":{"version":0,"block":{"attributes":{"conditions":{"type":["list","string"],"description":"schema: Required","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_web_tamper_rule_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"number","description_kind":"plain","computed":true},"update_cache":{"type":"bool","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_domain_v1":{"version":0,"block":{"attributes":{"access_code":{"type":"string","description_kind":"plain","computed":true},"access_status":{"type":"number","description_kind":"plain","computed":true},"certificate_id":{"type":"string","description_kind":"plain","optional":true},"cipher":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cname":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"protect_status":{"type":"number","description_kind":"plain","computed":true},"protocol":{"type":"string","description_kind":"plain","computed":true},"proxy":{"type":"bool","description_kind":"plain","required":true},"sip_header_list":{"type":["list","string"],"description_kind":"plain","optional":true},"sip_header_name":{"type":"string","description_kind":"plain","optional":true},"sub_domain":{"type":"string","description_kind":"plain","computed":true},"tls":{"type":"string","description_kind":"plain","optional":true,"computed":true},"txt_code":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"block_page":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description_kind":"plain","optional":true,"computed":true},"content_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"redirect_url":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status_code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"template":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"server":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"back_protocol":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"client_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true},"front_protocol":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"server_protocol":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_falsealarmmasking_rule_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"rule":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_waf_policy_v1":{"version":0,"block":{"attributes":{"full_detection":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"hosts":{"type":["list","string"],"description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"level":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"options":{"nesting_mode":"list","block":{"attributes":{"antitamper":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"cc":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"common":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_engine":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_other":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_scanner":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"crawler_script":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"custom":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ignore":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"privacy":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"webattack":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"webshell":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"whiteblackip":{"type":"bool","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_preciseprotection_rule_v1":{"version":0,"block":{"attributes":{"action_category":{"type":"string","description_kind":"plain","required":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"priority":{"type":"number","description_kind":"plain","optional":true},"start":{"type":"string","description_kind":"plain","optional":true,"computed":true},"time":{"type":"bool","description_kind":"plain","optional":true}},"block_types":{"conditions":{"nesting_mode":"list","block":{"attributes":{"category":{"type":"string","description_kind":"plain","required":true},"contents":{"type":["list","string"],"description_kind":"plain","required":true},"index":{"type":"string","description_kind":"plain","optional":true},"logic":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_webtamperprotection_rule_v1":{"version":0,"block":{"attributes":{"hostname":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_waf_whiteblackip_rule_v1":{"version":0,"block":{"attributes":{"addr":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy_id":{"type":"string","description_kind":"plain","required":true},"white":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"opentelekomcloud_antiddos_v1":{"version":0,"block":{"attributes":{"bps_attack":{"type":["set","number"],"description_kind":"plain","computed":true},"bps_in":{"type":["set","number"],"description_kind":"plain","computed":true},"end_time":{"type":["set","number"],"description_kind":"plain","computed":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_type":{"type":"string","description_kind":"plain","computed":true},"period_start":{"type":["set","number"],"description_kind":"plain","computed":true},"pps_attack":{"type":["set","number"],"description_kind":"plain","computed":true},"pps_in":{"type":["set","number"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_time":{"type":["set","number"],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"total_bps":{"type":["set","number"],"description_kind":"plain","computed":true},"total_pps":{"type":["set","number"],"description_kind":"plain","computed":true},"traffic_cleaning_status":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_bps":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_http_pps":{"type":["set","number"],"description_kind":"plain","computed":true},"trigger_pps":{"type":["set","number"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_apigw_api_history_v2":{"version":0,"block":{"attributes":{"api_id":{"type":"string","description_kind":"plain","required":true},"environment_id":{"type":"string","description_kind":"plain","optional":true},"environment_name":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","required":true},"history":{"type":["list",["object",{"description":"string","id":"string","name":"string","publish_time":"string","status":"number"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_cbr_backup_ids_v3":{"version":0,"block":{"attributes":{"checkpoint_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"image_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_az":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vault_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cbr_backup_v3":{"version":0,"block":{"attributes":{"auto_trigger":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"bootable":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"checkpoint_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"contain_system_disk":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"encrypted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"expired_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"incremental":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parent_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_az":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"support_lld":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"supported_restore_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"system_disk":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vault_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_template_v3":{"version":0,"block":{"attributes":{"addon_name":{"type":"string","description_kind":"plain","required":true},"addon_version":{"type":"string","description_kind":"plain","required":true},"cluster_ip":{"type":"string","description_kind":"plain","optional":true,"computed":true},"cluster_versions":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"swr_addr":{"type":"string","description_kind":"plain","optional":true,"computed":true},"swr_user":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_addon_templates_v3":{"version":0,"block":{"attributes":{"addon_name":{"type":"string","description_kind":"plain","required":true},"addons":{"type":["list",["object",{"addon_version":"string","cluster_ip":"string","euleros_version":"string","image_version":"string","obs_url":"string","platform":"string","swr_addr":"string","swr_user":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","optional":true},"cluster_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_kubeconfig_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"duration":{"type":"number","description_kind":"plain","optional":true},"expiry_date":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_cluster_v3":{"version":0,"block":{"attributes":{"authentication_mode":{"type":"string","description_kind":"plain","computed":true},"billing_mode":{"type":"number","description_kind":"plain","computed":true},"certificate_clusters":{"type":["list",["object",{"certificate_authority_data":"string","name":"string","server":"string"}]],"description_kind":"plain","computed":true},"certificate_users":{"type":["list",["object",{"client_certificate_data":"string","client_key_data":"string","name":"string"}]],"description_kind":"plain","computed":true},"cluster_type":{"type":"string","description_kind":"plain","optional":true},"cluster_version":{"type":"string","description_kind":"plain","computed":true},"container_network_cidr":{"type":"string","description_kind":"plain","computed":true},"container_network_type":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"eni_subnet_cidr":{"type":"string","description_kind":"plain","computed":true},"eni_subnet_id":{"type":"string","description_kind":"plain","computed":true},"external":{"type":"string","description_kind":"plain","computed":true},"external_otc":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"highway_subnet_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_cce_node_ids_v3":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_cce_node_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","computed":true},"billing_mode":{"type":"number","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description_kind":"plain","required":true},"data_volumes":{"type":["list",["object",{"disk_size":"number","extend_params":["map","string"],"kms_id":"string","volume_type":"string"}]],"description_kind":"plain","computed":true},"disk_size":{"type":"number","description_kind":"plain","computed":true},"eip_count":{"type":"number","description_kind":"plain","computed":true},"eip_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_type":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"node_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","computed":true},"public_ip":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_availability_zones_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["list","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_flavors_v2":{"version":0,"block":{"attributes":{"disk":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rx_tx_factor":{"type":"number","description_kind":"plain","computed":true},"sort_dir":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"swap":{"type":"number","description_kind":"plain","computed":true},"vcpus":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_keypairs_v2":{"version":0,"block":{"attributes":{"fingerprint":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_nic_v2":{"version":0,"block":{"attributes":{"fixed_ips":{"type":["list",["object",{"ip_address":"string","subnet_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"mac_address":{"type":"string","description_kind":"plain","computed":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_bms_server_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"config_drive":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"host_id":{"type":"string","description_kind":"plain","computed":true},"host_status":{"type":"string","description_kind":"plain","optional":true},"hypervisor_hostname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_name":{"type":"string","description_kind":"plain","computed":true},"kernel_id":{"type":"string","description_kind":"plain","computed":true},"key_name":{"type":"string","description_kind":"plain","optional":true},"locked":{"type":"bool","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network":{"type":["list",["object",{"ip":"string","mac":"string","name":"string","type":"string","version":"number"}]],"description_kind":"plain","computed":true},"progress":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["list",["object",{"name":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_flavor_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"disk":{"type":"number","description_kind":"plain","optional":true},"extra_specs":{"type":["map","string"],"description_kind":"plain","computed":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_disk":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"ram":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"rx_tx_factor":{"type":"number","description_kind":"plain","optional":true},"swap":{"type":"number","description_kind":"plain","optional":true},"vcpus":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_instance_v2":{"version":0,"block":{"attributes":{"access_ip_v4":{"type":"string","description_kind":"plain","computed":true},"access_ip_v6":{"type":"string","description_kind":"plain","computed":true},"admin_pass":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"encrypted_password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"flavor_id":{"type":"string","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","computed":true},"image_name":{"type":"string","description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"power_state":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_groups":{"type":["set","string"],"description_kind":"plain","computed":true},"ssh_private_key_path":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"user_data":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"network":{"nesting_mode":"list","block":{"attributes":{"fixed_ip_v4":{"type":"string","description_kind":"plain","computed":true},"fixed_ip_v6":{"type":"string","description_kind":"plain","computed":true},"mac":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"string","description_kind":"plain","computed":true},"uuid":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_compute_instances_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"flavor_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description_kind":"plain","optional":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"instances":{"type":["list",["object",{"availability_zone":"string","description":"string","flavor_id":"string","id":"string","image_id":"string","image_name":"string","key_pair":"string","name":"string","network":["list",["object",{"fixed_ip_v4":"string","fixed_ip_v6":"string","mac":"string","name":"string","port":"string","uuid":"string"}]],"project_id":"string","public_ip":"string","security_groups_ids":["list","string"],"status":"string","system_disk_id":"string","tags":["map","string"],"user_data":"string"}]],"description_kind":"plain","computed":true},"key_pair":{"type":"string","description_kind":"plain","optional":true},"limit":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_compute_keypair_v2":{"version":0,"block":{"attributes":{"fingerprint":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"public_key":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_policy_v1":{"version":0,"block":{"attributes":{"common":{"type":["map","string"],"description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"provider_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource":{"type":["set",["object",{"id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"scheduled_operation":{"type":["set",["object",{"description":"string","enabled":"bool","id":"string","max_backups":"number","name":"string","operation_type":"string","permanent":"bool","retention_duration_days":"number","trigger_id":"string","trigger_name":"string","trigger_pattern":"string","trigger_type":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_csbs_backup_v1":{"version":0,"block":{"attributes":{"auto_trigger":{"type":"bool","description_kind":"plain","computed":true},"average_speed":{"type":"number","description_kind":"plain","computed":true},"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"backup_record_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"policy_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_ip":{"type":"string","description_kind":"plain","optional":true},"vm_metadata":{"type":["set",["object",{"cloud_service_type":"string","disk":"number","eip":"string","image_type":"string","name":"string","private_ip":"string","ram":"number","vcpus":"number"}]],"description_kind":"plain","computed":true},"volume_backups":{"type":["set",["object",{"average_speed":"number","bootable":"bool","id":"string","image_type":"string","incremental":"bool","name":"string","size":"number","snapshot_id":"string","source_volume_id":"string","source_volume_name":"string","source_volume_size":"number","space_saving_ratio":"number","status":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_css_flavor_v1":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_cpu":{"type":"number","description_kind":"plain","optional":true},"min_ram":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"disk_range":{"nesting_mode":"list","block":{"attributes":{"from":{"type":"number","description_kind":"plain","computed":true},"min_from":{"type":"number","description_kind":"plain","optional":true},"min_to":{"type":"number","description_kind":"plain","optional":true},"to":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"opentelekomcloud_cts_tracker_v1":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","computed":true},"file_prefix_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_lts_enabled":{"type":"bool","description_kind":"plain","computed":true},"log_group_name":{"type":"string","description_kind":"plain","computed":true},"log_topic_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tracker_name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_az_v1":{"version":0,"block":{"attributes":{"code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_certificate_v2":{"version":0,"block":{"attributes":{"bucket_name":{"type":"string","description_kind":"plain","computed":true},"certificate":{"type":"string","description_kind":"plain","computed":true},"file_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"link":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_maintainwindow_v1":{"version":0,"block":{"attributes":{"begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"seq":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dcs_product_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"spec_code":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dds_flavors_v3":{"version":0,"block":{"attributes":{"engine_name":{"type":"string","description_kind":"plain","required":true},"flavors":{"type":["list",["object",{"az_status":["map","string"],"memory":"string","spec_code":"string","type":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"vcpus":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_dds_instance_v3":{"version":0,"block":{"attributes":{"backup_strategy":{"type":["list",["object",{"keep_days":"number","start_time":"string"}]],"description_kind":"plain","computed":true},"datastore":{"type":["list",["object",{"storage_engine":"string","type":"string","version":"string"}]],"description_kind":"plain","computed":true},"datastore_type":{"type":"string","description_kind":"plain","optional":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","optional":true},"mode":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"nodes":{"type":["list",["object",{"id":"string","name":"string","private_ip":"string","public_ip":"string","role":"string","status":"string","type":"string"}]],"description_kind":"plain","computed":true},"pay_mode":{"type":"string","description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"ssl":{"type":"bool","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_deh_host_v1":{"version":0,"block":{"attributes":{"auto_placement":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","optional":true},"available_instance_capacities":{"type":["list",["object",{"flavor":"string"}]],"description_kind":"plain","computed":true},"available_memory":{"type":"number","description_kind":"plain","computed":true},"available_vcpus":{"type":"number","description_kind":"plain","computed":true},"cores":{"type":"number","description_kind":"plain","computed":true},"host_type":{"type":"string","description_kind":"plain","computed":true},"host_type_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"instance_total":{"type":"number","description_kind":"plain","computed":true},"instance_uuids":{"type":["list","string"],"description_kind":"plain","computed":true},"memory":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sockets":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"vcpus":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_deh_server_v1":{"version":0,"block":{"attributes":{"dedicated_host_id":{"type":"string","description_kind":"plain","optional":true},"flavor":{"type":["map","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"fixed_ip_v4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_direct_connect_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"applicant":{"type":"string","description_kind":"plain","computed":true},"apply_time":{"type":"string","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description_kind":"plain","optional":true,"computed":true},"building_line_product_id":{"type":"string","description_kind":"plain","computed":true},"cable_label":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"delete_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","computed":true},"hosting_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface_name":{"type":"string","description_kind":"plain","computed":true},"lag_id":{"type":"string","description_kind":"plain","computed":true},"last_onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"location":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mobile":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"onestop_product_id":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"string","description_kind":"plain","computed":true},"peer_location":{"type":"string","description_kind":"plain","computed":true},"peer_port_type":{"type":"string","description_kind":"plain","computed":true},"peer_provider":{"type":"string","description_kind":"plain","computed":true},"period_num":{"type":"number","description_kind":"plain","computed":true},"period_type":{"type":"number","description_kind":"plain","computed":true},"port_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product_id":{"type":"string","description_kind":"plain","computed":true},"provider_name":{"type":"string","description_kind":"plain","computed":true},"provider_status":{"type":"string","description_kind":"plain","computed":true},"reason":{"type":"string","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region_id":{"type":"string","description_kind":"plain","computed":true},"service_key":{"type":"string","description_kind":"plain","computed":true},"spec_code":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vgw_type":{"type":"string","description_kind":"plain","computed":true},"vlan":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_az_v1":{"version":0,"block":{"attributes":{"code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_flavor_v2":{"version":0,"block":{"attributes":{"arch_type":{"type":"string","description_kind":"plain","optional":true},"availability_zones":{"type":["list","string"],"description_kind":"plain","optional":true},"charging_mode":{"type":"string","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"flavors":{"type":["list",["object",{"arch_types":["list","string"],"charging_modes":["list","string"],"id":"string","ios":["list",["object",{"availability_zones":["list","string"],"storage_spec_code":"string","type":"string","unavailability_zones":["list","string"]}]],"properties":["list",["object",{"flavor_alias":"string","max_bandwidth_per_broker":"number","max_broker":"number","max_consumer_per_broker":"number","max_partition_per_broker":"number","max_storage_per_node":"number","max_tps_per_broker":"number","min_broker":"number","min_storage_per_node":"number"}]],"support_features":["list",["object",{"name":"string","properties":["list",["object",{"max_node":"number","max_task":"number","min_node":"number","min_task":"number"}]]}]],"type":"string","vm_specification":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"storage_spec_code":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"versions":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_maintainwindow_v1":{"version":0,"block":{"attributes":{"begin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"default":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"end":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"seq":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dms_product_v1":{"version":0,"block":{"attributes":{"bandwidth":{"type":"string","description_kind":"plain","optional":true},"engine":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description_kind":"plain","required":true},"io_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"node_num":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_num":{"type":"string","description_kind":"plain","optional":true},"storage":{"type":"string","description_kind":"plain","optional":true,"computed":true},"storage_spec_code":{"type":"string","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vm_specification":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dns_nameservers_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"nameservers":{"nesting_mode":"list","block":{"attributes":{"hostname":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_dns_zone_v2":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"links":{"type":["map","string"],"description_kind":"plain","computed":true},"masters":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pool_id":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"serial":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"ttl":{"type":"number","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"zone_type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_dws_flavors_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"flavors":{"type":["list",["object",{"availability_zone":"string","flavor_id":"string","memory":"number","size":"number","vcpus":"number","volumetype":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vcpus":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_evs_volumes_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"shareable":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"volume_id":{"type":"string","description_kind":"plain","optional":true},"volume_type_id":{"type":"string","description_kind":"plain","optional":true},"volumes":{"type":["list",["object",{"attachments":["list",["object",{"attached_at":"string","attached_mode":"string","device_name":"string","id":"string","server_id":"string"}]],"availability_zone":"string","bootable":"bool","create_at":"string","description":"string","id":"string","name":"string","service_type":"string","shareable":"bool","size":"number","status":"string","tags":["map","string"],"update_at":"string","volume_type":"string","wwn":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_agency_v3":{"version":0,"block":{"attributes":{"create_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"duration":{"type":"string","description_kind":"plain","computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"trust_domain_id":{"type":"string","description_kind":"plain","optional":true},"trust_domain_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_auth_scope_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","computed":true},"domain_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"project_domain_id":{"type":"string","description_kind":"plain","computed":true},"project_domain_name":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"roles":{"type":["list",["object",{"role_id":"string","role_name":"string"}]],"description_kind":"plain","computed":true},"user_domain_id":{"type":"string","description_kind":"plain","computed":true},"user_domain_name":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description_kind":"plain","computed":true},"user_name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_credential_v3":{"version":0,"block":{"attributes":{"credentials":{"type":["list",["object",{"access":"string","create_time":"string","description":"string","status":"string","user_id":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_group_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_project_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_domain":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"parent_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_projects_v3":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"projects":{"type":["list",["object",{"description":"string","domain_id":"string","enabled":"bool","is_domain":"bool","name":"string","parent_id":"string","project_id":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_custom_v3":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"statement":{"type":["list",["object",{"action":["list","string"],"condition":"string","effect":"string","resource":["list","string"]}]],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_identity_role_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_identity_user_v3":{"version":0,"block":{"attributes":{"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mfa_device":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"password_expires_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_images_image_v2":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","computed":true},"checksum":{"type":"string","description_kind":"plain","computed":true},"container_format":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"data_origin":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"disk_format":{"type":"string","description_kind":"plain","computed":true},"file":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"image_source_type":{"type":"string","description_kind":"plain","computed":true},"image_type":{"type":"string","description_kind":"plain","computed":true},"is_registered":{"type":"string","description_kind":"plain","computed":true},"login_user":{"type":"string","description_kind":"plain","computed":true},"min_disk":{"type":"number","description_kind":"plain","computed":true},"min_ram":{"type":"number","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"original_image_name":{"type":"string","description_kind":"plain","computed":true},"os_bit":{"type":"string","description_kind":"plain","computed":true},"os_type":{"type":"string","description_kind":"plain","computed":true},"os_version":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","optional":true},"platform":{"type":"string","description_kind":"plain","computed":true},"protected":{"type":"bool","description_kind":"plain","computed":true},"schema":{"type":"string","description_kind":"plain","computed":true},"size_bytes":{"type":"number","description_kind":"plain","computed":true},"size_max":{"type":"number","description_kind":"plain","optional":true},"size_min":{"type":"number","description_kind":"plain","optional":true},"sort_direction":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true},"support_disk_intensive":{"type":"string","description_kind":"plain","computed":true},"support_high_performance":{"type":"string","description_kind":"plain","computed":true},"support_kvm":{"type":"string","description_kind":"plain","computed":true},"support_kvm_gpu_type":{"type":"string","description_kind":"plain","computed":true},"support_kvm_infiniband":{"type":"string","description_kind":"plain","computed":true},"support_large_memory":{"type":"string","description_kind":"plain","computed":true},"support_xen":{"type":"string","description_kind":"plain","computed":true},"support_xen_gpu_type":{"type":"string","description_kind":"plain","computed":true},"support_xen_hana":{"type":"string","description_kind":"plain","computed":true},"system_cmk_id":{"type":"string","description_kind":"plain","computed":true},"tag":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"virtual_env_type":{"type":"string","description_kind":"plain","computed":true},"visibility":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_kms_data_key_v1":{"version":0,"block":{"attributes":{"cipher_text":{"type":"string","description_kind":"plain","computed":true},"datakey_length":{"type":"string","description_kind":"plain","required":true},"encryption_context":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_id":{"type":"string","description_kind":"plain","required":true},"plain_text":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_kms_key_v1":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"default_key_flag":{"type":"string","description_kind":"plain","optional":true,"computed":true},"domain_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expiration_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_alias":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key_state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"origin":{"type":"string","description_kind":"plain","optional":true,"computed":true},"realm":{"type":"string","description_kind":"plain","optional":true,"computed":true},"scheduled_deletion_date":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_certificate_v3":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","optional":true,"computed":true},"expire_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"private_key":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_flavor_v3":{"version":0,"block":{"attributes":{"bandwidth":{"type":"number","description_kind":"plain","computed":true},"cps":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_connections":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"qps":{"type":"number","description_kind":"plain","computed":true},"shared":{"type":"bool","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_flavors_v3":{"version":0,"block":{"attributes":{"flavors":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_listener_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"advanced_forwarding":{"type":"bool","description_kind":"plain","computed":true},"client_ca_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"client_timeout":{"type":"number","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"default_pool_id":{"type":"string","description_kind":"plain","optional":true},"default_tls_container_ref":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"http2_enable":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"insert_headers":{"type":["list",["object",{"forward_elb_ip":"bool","forwarded_for_port":"bool","forwarded_host":"bool","forwarded_port":"bool"}]],"description_kind":"plain","computed":true},"ip_group":{"type":["list",["object",{"enable":"bool","id":"string","type":"string"}]],"description_kind":"plain","computed":true},"keep_alive_timeout":{"type":"number","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description_kind":"plain","optional":true},"member_address":{"type":"string","description_kind":"plain","optional":true},"member_device_id":{"type":"string","description_kind":"plain","optional":true},"member_retry_enable":{"type":"bool","description_kind":"plain","computed":true},"member_timeout":{"type":"number","description_kind":"plain","optional":true},"memory_retry_enable":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"protocol_port":{"type":"number","description_kind":"plain","optional":true},"security_policy_id":{"type":"string","description_kind":"plain","computed":true},"sni_container_refs":{"type":["set","string"],"description_kind":"plain","computed":true},"sni_match_algo":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"tls_ciphers_policy":{"type":"string","description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_loadbalancer_v3":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","computed":true},"availability_zones":{"type":["set","string"],"description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deletion_protection":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_target_enable":{"type":"bool","description_kind":"plain","computed":true},"l4_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"l7_flavor":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"network_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"public_ip":{"type":["list",["object",{"address":"string","bandwidth_charge_mode":"string","bandwidth_name":"string","bandwidth_share_type":"string","bandwidth_size":"number","id":"string","ip_type":"string"}]],"description_kind":"plain","computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_address":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vip_port_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_lb_member_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"pool_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_nat_dnat_rules_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"external_service_port":{"type":"number","description_kind":"plain","optional":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_service_port":{"type":"number","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip":{"type":"string","description_kind":"plain","optional":true},"protocol":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"rule_id":{"type":"string","description_kind":"plain","optional":true},"rules":{"type":["list",["object",{"created_at":"string","description":"string","external_service_port":"number","floating_ip_address":"string","floating_ip_id":"string","gateway_id":"string","id":"string","internal_service_port":"number","port_id":"string","private_ip":"string","protocol":"string","status":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_nat_gateway_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_network_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"spec":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_nat_snat_rules_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"floating_ip_address":{"type":"string","description_kind":"plain","optional":true},"floating_ip_id":{"type":"string","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","computed":true},"rule_id":{"type":"string","description_kind":"plain","optional":true},"rules":{"type":["list",["object",{"admin_state_up":"bool","cidr":"string","created_at":"string","floating_ip_address":"string","floating_ip_id":"string","gateway_id":"string","id":"string","project_id":"string","source_type":"number","status":"string","subnet_id":"string"}]],"description_kind":"plain","computed":true},"source_type":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_network_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"matching_subnet_cidr":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"shared":{"type":"string","description_kind":"plain","computed":true},"tenant_id":{"type":"string","description":"The ID of the Tenant (Identity v2) or Project (Identity v3)\nto login with.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_ids_v2":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description_kind":"plain","optional":true},"device_owner":{"type":"string","description_kind":"plain","optional":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["list","string"],"description_kind":"plain","computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"sort_direction":{"type":"string","description_kind":"plain","optional":true},"sort_key":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_port_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"all_fixed_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"all_security_group_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"device_id":{"type":"string","description_kind":"plain","optional":true},"device_owner":{"type":"string","description_kind":"plain","optional":true},"fixed_ip":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true},"security_group_ids":{"type":["set","string"],"description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_rule_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_networking_secgroup_v2":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secgroup_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description_kind":"plain","required":true},"bucket_domain_name":{"type":"string","description_kind":"plain","computed":true},"cors_rule":{"type":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"description_kind":"plain","computed":true},"event_notifications":{"type":["list",["object",{"events":["set","string"],"filter_rule":["set",["object",{"name":"string","value":"string"}]],"id":"string","topic":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_rule":{"type":["list",["object",{"enabled":"bool","expiration":["set",["object",{"days":"number"}]],"name":"string","noncurrent_version_expiration":["set",["object",{"days":"number"}]],"noncurrent_version_transition":["list",["object",{"days":"number","storage_class":"string"}]],"prefix":"string","transition":["list",["object",{"days":"number","storage_class":"string"}]]}]],"description_kind":"plain","computed":true},"logging":{"type":["set",["object",{"target_bucket":"string","target_prefix":"string"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"server_side_encryption":{"type":["list",["object",{"algorithm":"string","kms_key_id":"string"}]],"description_kind":"plain","computed":true},"storage_class":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"versioning":{"type":"bool","description_kind":"plain","computed":true},"website":{"type":["list",["object",{"error_document":"string","index_document":"string","redirect_all_requests_to":"string","routing_rules":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_obs_bucket_object":{"version":0,"block":{"attributes":{"body":{"type":"string","description_kind":"plain","computed":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description_kind":"plain","computed":true},"content_language":{"type":"string","description_kind":"plain","computed":true},"content_length":{"type":"number","description_kind":"plain","computed":true},"content_type":{"type":"string","description_kind":"plain","computed":true},"etag":{"type":"string","description_kind":"plain","computed":true},"expiration":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"last_modified":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_redirect_location":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rds_backup_v3":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description_kind":"plain","optional":true},"begin_time":{"type":"string","description_kind":"plain","computed":true},"databases":{"type":["set","string"],"description_kind":"plain","computed":true},"db_type":{"type":"string","description_kind":"plain","computed":true},"db_version":{"type":"string","description_kind":"plain","computed":true},"end_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_rds_flavors_v1":{"version":0,"block":{"attributes":{"datastore_name":{"type":"string","description_kind":"plain","required":true},"datastore_version":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"ram":{"type":"number","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"speccode":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_rds_flavors_v3":{"version":0,"block":{"attributes":{"db_type":{"type":"string","description_kind":"plain","required":true},"db_version":{"type":"string","description_kind":"plain","required":true},"flavors":{"type":["list",["object",{"az_status":["map","string"],"memory":"number","mode":"string","name":"string","vcpus":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_mode":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rds_instance_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":["list","string"],"description_kind":"plain","computed":true},"backup_strategy":{"type":["list",["object",{"keep_days":"number","start_time":"string"}]],"description_kind":"plain","computed":true},"created":{"type":"string","description_kind":"plain","computed":true},"datastore_type":{"type":"string","description_kind":"plain","optional":true},"datastore_version":{"type":"string","description_kind":"plain","computed":true},"db_username":{"type":"string","description_kind":"plain","computed":true},"disk_encryption_id":{"type":"string","description_kind":"plain","computed":true},"fixed_ip":{"type":"string","description_kind":"plain","computed":true},"flavor":{"type":"string","description_kind":"plain","computed":true},"ha":{"type":["map","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"nodes":{"type":["list",["object",{"availability_zone":"string","id":"string","name":"string","role":"string","status":"string"}]],"description_kind":"plain","computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"private_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"public_ips":{"type":["list","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","computed":true},"timezone":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true},"volume_size":{"type":"number","description_kind":"plain","computed":true},"volume_type":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_rds_versions_v3":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"versions":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_software_config_v1":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","computed":true},"group":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"input_values":{"type":["list",["map","string"]],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"options":{"type":["map","string"],"description_kind":"plain","computed":true},"output_values":{"type":["list",["map","string"]],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_software_deployment_v1":{"version":0,"block":{"attributes":{"action":{"type":"string","description_kind":"plain","optional":true},"config_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"input_values":{"type":["map","string"],"description_kind":"plain","computed":true},"output_values":{"type":["map","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"status_reason":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_resource_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logical_resource_id":{"type":"string","description_kind":"plain","computed":true},"physical_resource_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"required_by":{"type":["set","string"],"description_kind":"plain","computed":true},"resource_name":{"type":"string","description_kind":"plain","optional":true},"resource_status":{"type":"string","description_kind":"plain","computed":true},"resource_status_reason":{"type":"string","description_kind":"plain","computed":true},"resource_type":{"type":"string","description_kind":"plain","optional":true},"stack_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_rts_stack_v1":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description_kind":"plain","computed":true},"disable_rollback":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"notification_topics":{"type":["set","string"],"description_kind":"plain","computed":true},"outputs":{"type":["map","string"],"description_kind":"plain","computed":true},"parameters":{"type":["map","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"status_reason":{"type":"string","description_kind":"plain","computed":true},"template_body":{"type":"string","description_kind":"plain","computed":true},"timeout_mins":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_s3_bucket_object":{"version":0,"block":{"attributes":{"body":{"type":"string","description_kind":"plain","computed":true},"bucket":{"type":"string","description_kind":"plain","required":true},"cache_control":{"type":"string","description_kind":"plain","computed":true},"content_disposition":{"type":"string","description_kind":"plain","computed":true},"content_encoding":{"type":"string","description_kind":"plain","computed":true},"content_language":{"type":"string","description_kind":"plain","computed":true},"content_length":{"type":"number","description_kind":"plain","computed":true},"content_type":{"type":"string","description_kind":"plain","computed":true},"etag":{"type":"string","description_kind":"plain","computed":true},"expiration":{"type":"string","description_kind":"plain","computed":true},"expires":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description_kind":"plain","required":true},"last_modified":{"type":"string","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"range":{"type":"string","description_kind":"plain","optional":true},"server_side_encryption":{"type":"string","description_kind":"plain","computed":true},"sse_kms_key_id":{"type":"string","description_kind":"plain","computed":true},"version_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"website_redirect_location":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_sdrs_domain_v1":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"opentelekomcloud_sfs_file_system_v2":{"version":0,"block":{"attributes":{"access_level":{"type":"string","description_kind":"plain","computed":true},"access_to":{"type":"string","description_kind":"plain","computed":true},"access_type":{"type":"string","description_kind":"plain","computed":true},"availability_zone":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"export_locations":{"type":["set","string"],"description_kind":"plain","computed":true},"host":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"is_public":{"type":"bool","description_kind":"plain","computed":true},"metadata":{"type":["map","string"],"description_kind":"plain","computed":true},"mount_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"preferred":{"type":"bool","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_access_id":{"type":"string","description_kind":"plain","computed":true},"share_instance_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"volume_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_sfs_turbo_share_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"available_capacity":{"type":"string","description_kind":"plain","computed":true},"crypt_key_id":{"type":"string","description_kind":"plain","computed":true},"export_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description_kind":"plain","computed":true},"share_proto":{"type":"string","description_kind":"plain","computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_policy_v2":{"version":0,"block":{"attributes":{"frequency":{"type":"number","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"policy_resource_count":{"type":"number","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"remain_first_backup":{"type":"string","description_kind":"plain","computed":true},"rentention_num":{"type":"number","description_kind":"plain","computed":true},"start_time":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["set",["object",{"key":"string","value":"string"}]],"description_kind":"plain","computed":true}},"block_types":{"filter_tags":{"nesting_mode":"set","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"values":{"type":["set","string"],"description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"opentelekomcloud_vbs_backup_v2":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","computed":true},"container":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_metadata":{"type":"string","description_kind":"plain","computed":true},"share_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"to_project_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"volume_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_bandwidth":{"version":0,"block":{"attributes":{"bandwidth_type":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"enterprise_project_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"opentelekomcloud_vpc_bandwidth_v2":{"version":0,"block":{"attributes":{"bandwidth_type":{"type":"string","description_kind":"plain","computed":true},"charge_mode":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"share_type":{"type":"string","description_kind":"plain","computed":true},"size":{"type":"number","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_eip_v1":{"version":0,"block":{"attributes":{"bandwidth_id":{"type":"string","description_kind":"plain","optional":true},"bandwidth_share_type":{"type":"string","description_kind":"plain","computed":true},"bandwidth_size":{"type":"number","description_kind":"plain","computed":true},"create_time":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"ip_version":{"type":"number","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"name_regex":{"type":"string","description_kind":"plain","optional":true},"port_id":{"type":"string","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description_kind":"plain","optional":true},"public_ip_address":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_peering_connection_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"peer_tenant_id":{"type":"string","description_kind":"plain","optional":true},"peer_vpc_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_ids_v2":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_table_v1":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"route":{"type":["list",["object",{"description":"string","destination":"string","nexthop":"string","type":"string"}]],"description_kind":"plain","computed":true},"subnets":{"type":["list","string"],"description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_tables_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"routetables":{"type":["list",["object",{"default":"bool","description":"string","id":"string","name":"string","routes":["set",["object",{"description":"string","destination":"string","nexthop":"string","type":"string"}]],"subnets":["set","string"],"tenant_id":"string","vpc_id":"string"}]],"description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_route_v2":{"version":0,"block":{"attributes":{"destination":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"nexthop":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_ids_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ids":{"type":["set","string"],"description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vpc_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_subnet_v1":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","optional":true},"cidr":{"type":"string","description_kind":"plain","optional":true},"cidr_ipv6":{"type":"string","description_kind":"plain","computed":true},"dhcp_enable":{"type":"bool","description_kind":"plain","computed":true},"dns_list":{"type":["set","string"],"description_kind":"plain","computed":true},"gateway_ip":{"type":"string","description_kind":"plain","optional":true},"gateway_ipv6":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6_enable":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"network_id":{"type":"string","description_kind":"plain","computed":true},"primary_dns":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secondary_dns":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpc_v1":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"routes":{"type":["list",["object",{"destination":"string","nexthop":"string"}]],"description_kind":"plain","computed":true},"shared":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_vpcep_public_service_v1":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_charge":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpcep_service_v1":{"version":0,"block":{"attributes":{"approval_enabled":{"type":"bool","description_kind":"plain","computed":true},"connection_count":{"type":"number","description_kind":"plain","computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":["set",["object",{"client_port":"number","protocol":"string","server_port":"number"}]],"description_kind":"plain","computed":true},"port_id":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"server_type":{"type":"string","description_kind":"plain","computed":true},"service_type":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description_kind":"plain","optional":true},"tcp_proxy":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"vip_port_id":{"type":"string","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"opentelekomcloud_vpnaas_service_v2":{"version":0,"block":{"attributes":{"admin_state_up":{"type":"bool","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"external_v4_ip":{"type":"string","description_kind":"plain","optional":true},"external_v6_ip":{"type":"string","description_kind":"plain","optional":true},"flavor_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"router_id":{"type":"string","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","optional":true},"subnet_id":{"type":"string","description_kind":"plain","optional":true},"tenant_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"opentelekomcloud_waf_dedicated_reference_tables_v1":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":true},"tables":{"type":["list",["object",{"conditions":["list","string"],"created_at":"string","description":"string","id":"string","name":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} diff --git a/examples-generated/lb/v1alpha1/certificatev2.yaml b/examples-generated/lb/v1alpha1/certificatev2.yaml deleted file mode 100644 index b30a0b6..0000000 --- a/examples-generated/lb/v1alpha1/certificatev2.yaml +++ /dev/null @@ -1,64 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: CertificateV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/certificatev2 - labels: - testing.upbound.io/example-name: certificate_1 - name: certificate-1 -spec: - forProvider: - certificate: | - -----BEGIN CERTIFICATE----- - MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV - BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw - CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j - b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4 - eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE - CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB - IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN - 2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld - iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb - 3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz - Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5 - mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID - AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw - FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B - AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0 - 83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG - r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY - c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA - i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic - i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg== - -----END CERTIFICATE----- - description: terraform test certificate - domain: www.elb.com - name: certificate_1 - privateKey: | - -----BEGIN RSA PRIVATE KEY----- - MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x - qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1 - UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15 - MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ - M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5 - 13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA - DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx - Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg - iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/ - rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN - 1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H - yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P - RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA - vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc - Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC - aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK - Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf - 75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs - uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF - Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD - 79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve - yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4 - 2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2 - ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl - nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1 - -----END RSA PRIVATE KEY----- diff --git a/examples-generated/lb/v1alpha1/ipgroupv3.yaml b/examples-generated/lb/v1alpha1/ipgroupv3.yaml index ff089b4..88ef944 100644 --- a/examples-generated/lb/v1alpha1/ipgroupv3.yaml +++ b/examples-generated/lb/v1alpha1/ipgroupv3.yaml @@ -11,9 +11,15 @@ spec: description: group description ipList: - description: one - ip: 192.168.50.10 + ipSelector: + matchLabels: + testing.upbound.io/example-name: example - description: two - ip: 192.168.100.10 + ipSelector: + matchLabels: + testing.upbound.io/example-name: example - description: three - ip: 192.168.150.10 + ipSelector: + matchLabels: + testing.upbound.io/example-name: example name: group_1 diff --git a/examples-generated/lb/v1alpha1/l7policyv2.yaml b/examples-generated/lb/v1alpha1/l7policyv2.yaml deleted file mode 100644 index 0d9aa39..0000000 --- a/examples-generated/lb/v1alpha1/l7policyv2.yaml +++ /dev/null @@ -1,65 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: L7PolicyV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7policyv2 - labels: - testing.upbound.io/example-name: l7policy_1 - name: l7policy-1 -spec: - forProvider: - action: REDIRECT_TO_POOL - description: test l7 policy - listenerId: ${opentelekomcloud_lb_listener_v2.listener_1.id} - name: test - position: 1 - redirectPoolId: ${opentelekomcloud_lb_pool_v2.pool_1.id} - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: ListenerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7policyv2 - labels: - testing.upbound.io/example-name: listener_1 - name: listener-1 -spec: - forProvider: - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id} - name: listener_1 - protocol: HTTP - protocolPort: 8080 - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: LoadbalancerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7policyv2 - labels: - testing.upbound.io/example-name: loadbalancer_1 - name: loadbalancer-1 -spec: - forProvider: - name: loadbalancer_1 - vipSubnetId: SUBNET_ID - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: PoolV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7policyv2 - labels: - testing.upbound.io/example-name: pool_1 - name: pool-1 -spec: - forProvider: - lbMethod: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id} - name: pool_1 - protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/l7rulev2.yaml b/examples-generated/lb/v1alpha1/l7rulev2.yaml deleted file mode 100644 index 22e99da..0000000 --- a/examples-generated/lb/v1alpha1/l7rulev2.yaml +++ /dev/null @@ -1,82 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: L7RuleV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7rulev2 - labels: - testing.upbound.io/example-name: l7rule_1 - name: l7rule-1 -spec: - forProvider: - compareType: EQUAL_TO - l7policyId: ${opentelekomcloud_lb_l7policy_v2.l7policy_1.id} - type: PATH - value: /api - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: L7PolicyV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7rulev2 - labels: - testing.upbound.io/example-name: l7policy_1 - name: l7policy-1 -spec: - forProvider: - action: REDIRECT_TO_URL - description: test description - listenerId: ${opentelekomcloud_lb_listener_v2.listener_1.id} - name: test - position: 1 - redirect_url: http://www.example.com - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: ListenerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7rulev2 - labels: - testing.upbound.io/example-name: listener_1 - name: listener-1 -spec: - forProvider: - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id} - name: listener_1 - protocol: HTTP - protocolPort: 8080 - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: LoadbalancerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7rulev2 - labels: - testing.upbound.io/example-name: loadbalancer_1 - name: loadbalancer-1 -spec: - forProvider: - name: loadbalancer_1 - vipSubnetId: SUBNET_ID - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: PoolV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/l7rulev2 - labels: - testing.upbound.io/example-name: pool_1 - name: pool-1 -spec: - forProvider: - lbMethod: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id} - name: pool_1 - protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/listenerv2.yaml b/examples-generated/lb/v1alpha1/listenerv2.yaml deleted file mode 100644 index a3628d5..0000000 --- a/examples-generated/lb/v1alpha1/listenerv2.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: ListenerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/listenerv2 - labels: - testing.upbound.io/example-name: listener_1 - name: listener-1 -spec: - forProvider: - loadbalancerId: d9415786-5f1a-428b-b35f-2f1523e146d2 - protocol: HTTP - protocolPort: 8080 - tags: - muh: kuh diff --git a/examples-generated/lb/v1alpha1/listenerv3.yaml b/examples-generated/lb/v1alpha1/listenerv3.yaml index 642c148..b756b2d 100644 --- a/examples-generated/lb/v1alpha1/listenerv3.yaml +++ b/examples-generated/lb/v1alpha1/listenerv3.yaml @@ -8,7 +8,9 @@ metadata: name: listener-1 spec: forProvider: - loadbalancerId: ${var.loadbalancer_id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: example protocol: HTTP protocolPort: 8080 tags: diff --git a/examples-generated/lb/v1alpha1/loadbalancerv2.yaml b/examples-generated/lb/v1alpha1/loadbalancerv2.yaml deleted file mode 100644 index 6f9beac..0000000 --- a/examples-generated/lb/v1alpha1/loadbalancerv2.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: LoadbalancerV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv2 - labels: - testing.upbound.io/example-name: lb_1 - name: lb-1 -spec: - forProvider: - tags: - muh: kuh - vipSubnetId: d9415786-5f1a-428b-b35f-2f1523e146d2 diff --git a/examples-generated/lb/v1alpha1/loadbalancerv3.yaml b/examples-generated/lb/v1alpha1/loadbalancerv3.yaml index 284c58f..3c58c59 100644 --- a/examples-generated/lb/v1alpha1/loadbalancerv3.yaml +++ b/examples-generated/lb/v1alpha1/loadbalancerv3.yaml @@ -10,8 +10,10 @@ spec: forProvider: availabilityZones: - ${var.az} - networkIds: - - ${var.network_id} - routerId: ${var.router_id} + networkIdsRefs: + - name: example + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: example tags: muh: kuh diff --git a/examples-generated/lb/v1alpha1/memberv2.yaml b/examples-generated/lb/v1alpha1/memberv2.yaml deleted file mode 100644 index d450c85..0000000 --- a/examples-generated/lb/v1alpha1/memberv2.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: MemberV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/memberv2 - labels: - testing.upbound.io/example-name: member1 - name: member1 -spec: - forProvider: - address: 192.168.199.23 - poolId: ${var.pool_id} - protocolPort: 8080 - subnetId: ${var.subnet_id} diff --git a/examples-generated/lb/v1alpha1/memberv3.yaml b/examples-generated/lb/v1alpha1/memberv3.yaml index 18f4f5f..41228dd 100644 --- a/examples-generated/lb/v1alpha1/memberv3.yaml +++ b/examples-generated/lb/v1alpha1/memberv3.yaml @@ -10,7 +10,9 @@ spec: forProvider: address: ${cidrhost(var.subnet_cidr, 3)} name: member-1 - poolId: ${opentelekomcloud_lb_pool_v3.pool.id} + poolIdSelector: + matchLabels: + testing.upbound.io/example-name: pool protocolPort: 8080 --- @@ -29,9 +31,11 @@ spec: - ${var.availability_zone} ipTargetEnable: true name: loadbalancer_1 - networkIds: - - ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id} - routerId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id} + networkIdsRefs: + - name: opentelekomcloud_vpc_subnet_v1 + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: opentelekomcloud_vpc_subnet_v1 --- @@ -46,6 +50,8 @@ metadata: spec: forProvider: lbAlgorithm: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: lb name: pool_1 protocol: TCP diff --git a/examples-generated/lb/v1alpha1/monitorv2.yaml b/examples-generated/lb/v1alpha1/monitorv2.yaml deleted file mode 100644 index 39c4e87..0000000 --- a/examples-generated/lb/v1alpha1/monitorv2.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: MonitorV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/monitorv2 - labels: - testing.upbound.io/example-name: monitor_1 - name: monitor-1 -spec: - forProvider: - delay: 20 - maxRetries: 5 - poolId: ${opentelekomcloud_lb_pool_v2.pool_1.id} - timeout: 10 - type: HTTP - urlPath: / diff --git a/examples-generated/lb/v1alpha1/monitorv3.yaml b/examples-generated/lb/v1alpha1/monitorv3.yaml index 1c2a898..e921b82 100644 --- a/examples-generated/lb/v1alpha1/monitorv3.yaml +++ b/examples-generated/lb/v1alpha1/monitorv3.yaml @@ -12,7 +12,9 @@ spec: maxRetries: 5 maxRetriesDown: 1 monitorPort: 8080 - poolId: ${opentelekomcloud_lb_pool_v3.pool.id} + poolIdSelector: + matchLabels: + testing.upbound.io/example-name: pool timeout: 30 type: HTTP @@ -31,9 +33,11 @@ spec: availabilityZones: - ${var.availability_zone} name: loadbalancer_1 - networkIds: - - ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id} - routerId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id} + networkIdsRefs: + - name: opentelekomcloud_vpc_subnet_v1 + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: opentelekomcloud_vpc_subnet_v1 --- @@ -48,5 +52,7 @@ metadata: spec: forProvider: lbAlgorithm: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: lb protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/policyv3.yaml b/examples-generated/lb/v1alpha1/policyv3.yaml index 9d757be..960eeb3 100644 --- a/examples-generated/lb/v1alpha1/policyv3.yaml +++ b/examples-generated/lb/v1alpha1/policyv3.yaml @@ -9,9 +9,13 @@ metadata: spec: forProvider: action: REDIRECT_TO_POOL - listenerId: ${opentelekomcloud_lb_listener_v3.this.id} + listenerIdSelector: + matchLabels: + testing.upbound.io/example-name: this position: 37 - redirectPoolId: ${opentelekomcloud_lb_pool_v3.this.id} + redirectPoolIdSelector: + matchLabels: + testing.upbound.io/example-name: this --- @@ -25,7 +29,9 @@ metadata: name: this spec: forProvider: - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: this protocol: HTTP protocolPort: 8080 @@ -43,9 +49,11 @@ spec: forProvider: availabilityZones: - ${var.az} - networkIds: - - ${var.network_id} - routerId: ${var.router_id} + networkIdsRefs: + - name: example + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: example --- @@ -60,5 +68,7 @@ metadata: spec: forProvider: lbAlgorithm: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: this protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/poolv2.yaml b/examples-generated/lb/v1alpha1/poolv2.yaml deleted file mode 100644 index 3583f81..0000000 --- a/examples-generated/lb/v1alpha1/poolv2.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: PoolV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/poolv2 - labels: - testing.upbound.io/example-name: pool_1 - name: pool-1 -spec: - forProvider: - lbMethod: ROUND_ROBIN - listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2 - persistence: - - cookieName: testCookie - type: APP_COOKIE - protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/poolv3.yaml b/examples-generated/lb/v1alpha1/poolv3.yaml index b0ed7e1..d91329e 100644 --- a/examples-generated/lb/v1alpha1/poolv3.yaml +++ b/examples-generated/lb/v1alpha1/poolv3.yaml @@ -9,7 +9,9 @@ metadata: spec: forProvider: lbAlgorithm: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: lb name: pool_1 protocol: TCP sessionPersistence: @@ -31,6 +33,8 @@ spec: availabilityZones: - ${var.availability_zone} name: loadbalancer_1 - networkIds: - - ${var.network_id} - routerId: ${var.router_id} + networkIdsRefs: + - name: example + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: example diff --git a/examples-generated/lb/v1alpha1/rulev3.yaml b/examples-generated/lb/v1alpha1/rulev3.yaml index 1158da9..60eb508 100644 --- a/examples-generated/lb/v1alpha1/rulev3.yaml +++ b/examples-generated/lb/v1alpha1/rulev3.yaml @@ -9,7 +9,9 @@ metadata: spec: forProvider: compareType: REGEX - policyId: ${opentelekomcloud_lb_policy_v3.this.id} + policyIdSelector: + matchLabels: + testing.upbound.io/example-name: this type: PATH value: ^.+$ @@ -25,7 +27,9 @@ metadata: name: this spec: forProvider: - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: this protocol: HTTP protocolPort: 8080 @@ -43,9 +47,11 @@ spec: forProvider: availabilityZones: - ${var.az} - networkIds: - - ${var.network_id} - routerId: ${var.router_id} + networkIdsRefs: + - name: example + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: example --- @@ -60,9 +66,13 @@ metadata: spec: forProvider: action: REDIRECT_TO_POOL - listenerId: ${opentelekomcloud_lb_listener_v3.this.id} + listenerIdSelector: + matchLabels: + testing.upbound.io/example-name: this position: 37 - redirectPoolId: ${opentelekomcloud_lb_pool_v3.this.id} + redirectPoolIdSelector: + matchLabels: + testing.upbound.io/example-name: this --- @@ -77,5 +87,7 @@ metadata: spec: forProvider: lbAlgorithm: ROUND_ROBIN - loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: this protocol: HTTP diff --git a/examples-generated/lb/v1alpha1/whitelistv2.yaml b/examples-generated/lb/v1alpha1/whitelistv2.yaml deleted file mode 100644 index becb72f..0000000 --- a/examples-generated/lb/v1alpha1/whitelistv2.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: WhitelistV2 -metadata: - annotations: - meta.upbound.io/example-id: lb/v1alpha1/whitelistv2 - labels: - testing.upbound.io/example-name: whitelist_1 - name: whitelist-1 -spec: - forProvider: - enableWhitelist: true - listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2 - whitelist: 192.168.11.1,192.168.0.1/24,192.168.201.18/8 diff --git a/examples-generated/vpcep/v1alpha1/endpointv1.yaml b/examples-generated/vpcep/v1alpha1/endpointv1.yaml index c480ed7..f4cc3b8 100644 --- a/examples-generated/vpcep/v1alpha1/endpointv1.yaml +++ b/examples-generated/vpcep/v1alpha1/endpointv1.yaml @@ -20,20 +20,6 @@ spec: --- -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: LoadbalancerV2 -metadata: - annotations: - meta.upbound.io/example-id: vpcep/v1alpha1/endpointv1 - labels: - testing.upbound.io/example-name: lb_1 - name: lb-1 -spec: - forProvider: - vipSubnetId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id} - ---- - apiVersion: vpcep.opentelekomcloud.crossplane.io/v1alpha1 kind: ServiceV1 metadata: diff --git a/examples-generated/vpcep/v1alpha1/servicev1.yaml b/examples-generated/vpcep/v1alpha1/servicev1.yaml index 321db9e..5f7e8e6 100644 --- a/examples-generated/vpcep/v1alpha1/servicev1.yaml +++ b/examples-generated/vpcep/v1alpha1/servicev1.yaml @@ -20,17 +20,3 @@ spec: whitelist: - ${var.domain_id_1} - ${var.domain_id_2} - ---- - -apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 -kind: LoadbalancerV2 -metadata: - annotations: - meta.upbound.io/example-id: vpcep/v1alpha1/servicev1 - labels: - testing.upbound.io/example-name: lb_1 - name: lb-1 -spec: - forProvider: - vipSubnetId: ${var.os_subnet_id} diff --git a/examples/lb/listener_and_ipgroup.yaml b/examples/lb/listener_and_ipgroup.yaml new file mode 100644 index 0000000..bea0f36 --- /dev/null +++ b/examples/lb/listener_and_ipgroup.yaml @@ -0,0 +1,101 @@ +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: VpcV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/v1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + name: crossplane-vpc + tags: + managed-by: crossplane +--- + +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + gatewayIp: "192.168.0.1" + name: crossplane-subnet + ntpAddresses: "10.100.0.33,10.100.0.34" + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-lb + availabilityZones: + - eu-de-01 + networkIdsRefs: + - name: sample-lb + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: IpgroupV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/ipgroupv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + description: crossplane group + ipList: + - description: first + ip: "192.168.10.11" + name: crossplane-group + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: ListenerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/listenerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-listener + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + protocol: HTTP + protocolPort: 8080 + ipGroup: + - idSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane diff --git a/examples/lb/loadbalancer.yaml b/examples/lb/loadbalancer.yaml new file mode 100644 index 0000000..c897e97 --- /dev/null +++ b/examples/lb/loadbalancer.yaml @@ -0,0 +1,82 @@ +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: VpcV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/v1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + name: crossplane-vpc + tags: + managed-by: crossplane +--- + +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + gatewayIp: "192.168.0.1" + name: crossplane-subnet + ntpAddresses: "10.100.0.33,10.100.0.34" + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: EIPV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/eipv1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + bandwidth: + - chargeMode: traffic + name: crossplane-lb-instance + shareType: PER + size: 8 + publicip: + - type: 5_bgp + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-lb + availabilityZones: + - eu-de-01 + networkIdsRefs: + - name: sample-lb + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + publicIp: + - idSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane diff --git a/examples/lb/policy_and_rule.yaml b/examples/lb/policy_and_rule.yaml new file mode 100644 index 0000000..40d44eb --- /dev/null +++ b/examples/lb/policy_and_rule.yaml @@ -0,0 +1,139 @@ +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: VpcV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/v1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + name: crossplane-vpc + tags: + managed-by: crossplane +--- + +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + gatewayIp: "192.168.0.1" + name: crossplane-subnet + ntpAddresses: "10.100.0.33,10.100.0.34" + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-lb + availabilityZones: + - eu-de-01 + networkIdsRefs: + - name: sample-lb + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: ListenerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/listenerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-listener + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + protocol: HTTP + protocolPort: 8080 + tags: + managed-by: crossplane + + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + name: crossplane-pool + protocol: HTTP + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: PolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/policyv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + action: REDIRECT_TO_POOL + listenerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + position: 37 + redirectPoolIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: RuleV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + compareType: REGEX + policyIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + type: PATH + value: ^.+$ diff --git a/examples/lb/pool_and_monitor.yaml b/examples/lb/pool_and_monitor.yaml new file mode 100644 index 0000000..1d3352a --- /dev/null +++ b/examples/lb/pool_and_monitor.yaml @@ -0,0 +1,118 @@ +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: VpcV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/v1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + name: crossplane-vpc + tags: + managed-by: crossplane +--- + +apiVersion: vpc.opentelekomcloud.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + cidr: "192.168.0.0/16" + gatewayIp: "192.168.0.1" + name: crossplane-subnet + ntpAddresses: "10.100.0.33,10.100.0.34" + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + name: crossplane-lb + availabilityZones: + - eu-de-01 + networkIdsRefs: + - name: sample-lb + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + tags: + managed-by: crossplane + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + name: crossplane-pool + protocol: TCP + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: MonitorV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/monitorv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + delay: 3 + maxRetries: 5 + maxRetriesDown: 1 + monitorPort: 8080 + poolIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + timeout: 30 + type: HTTP + +--- + +apiVersion: lb.opentelekomcloud.crossplane.io/v1alpha1 +kind: MemberV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: sample-lb + name: sample-lb +spec: + forProvider: + address: ${cidrhost(var.subnet_cidr, 3)} + name: crossplane-member + poolIdSelector: + matchLabels: + testing.upbound.io/example-name: sample-lb + protocolPort: 8080 diff --git a/internal/controller/lb/certificatev2/zz_controller.go b/internal/controller/lb/certificatev2/zz_controller.go deleted file mode 100755 index e8dbb9b..0000000 --- a/internal/controller/lb/certificatev2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package certificatev2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles CertificateV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.CertificateV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.CertificateV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.CertificateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_certificate_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.CertificateV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.CertificateV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.CertificateV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.CertificateV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.CertificateV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.CertificateV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.CertificateV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/l7policyv2/zz_controller.go b/internal/controller/lb/l7policyv2/zz_controller.go deleted file mode 100755 index 51e0f07..0000000 --- a/internal/controller/lb/l7policyv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package l7policyv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles L7PolicyV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.L7PolicyV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.L7PolicyV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.L7PolicyV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_l7policy_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.L7PolicyV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.L7PolicyV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.L7PolicyV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.L7PolicyV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.L7PolicyV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.L7PolicyV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.L7PolicyV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/l7rulev2/zz_controller.go b/internal/controller/lb/l7rulev2/zz_controller.go deleted file mode 100755 index c970ae7..0000000 --- a/internal/controller/lb/l7rulev2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package l7rulev2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles L7RuleV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.L7RuleV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.L7RuleV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.L7RuleV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_l7rule_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.L7RuleV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.L7RuleV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.L7RuleV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.L7RuleV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.L7RuleV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.L7RuleV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.L7RuleV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/listenerv2/zz_controller.go b/internal/controller/lb/listenerv2/zz_controller.go deleted file mode 100755 index 70b76df..0000000 --- a/internal/controller/lb/listenerv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package listenerv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles ListenerV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.ListenerV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ListenerV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ListenerV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_listener_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.ListenerV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.ListenerV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ListenerV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ListenerV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ListenerV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ListenerV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.ListenerV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/loadbalancerv2/zz_controller.go b/internal/controller/lb/loadbalancerv2/zz_controller.go deleted file mode 100755 index b1b41c1..0000000 --- a/internal/controller/lb/loadbalancerv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package loadbalancerv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles LoadbalancerV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.LoadbalancerV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.LoadbalancerV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.LoadbalancerV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_loadbalancer_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.LoadbalancerV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.LoadbalancerV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.LoadbalancerV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.LoadbalancerV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.LoadbalancerV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.LoadbalancerV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.LoadbalancerV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/memberv2/zz_controller.go b/internal/controller/lb/memberv2/zz_controller.go deleted file mode 100755 index d768db6..0000000 --- a/internal/controller/lb/memberv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package memberv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles MemberV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.MemberV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.MemberV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MemberV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_member_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.MemberV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.MemberV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.MemberV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.MemberV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.MemberV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MemberV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.MemberV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/monitorv2/zz_controller.go b/internal/controller/lb/monitorv2/zz_controller.go deleted file mode 100755 index e6cfa50..0000000 --- a/internal/controller/lb/monitorv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package monitorv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles MonitorV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.MonitorV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.MonitorV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MonitorV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_monitor_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.MonitorV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.MonitorV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.MonitorV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.MonitorV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.MonitorV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MonitorV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.MonitorV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/poolv2/zz_controller.go b/internal/controller/lb/poolv2/zz_controller.go deleted file mode 100755 index 6b16fcb..0000000 --- a/internal/controller/lb/poolv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package poolv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles PoolV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.PoolV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.PoolV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PoolV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_pool_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.PoolV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.PoolV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.PoolV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.PoolV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.PoolV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PoolV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.PoolV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/lb/whitelistv2/zz_controller.go b/internal/controller/lb/whitelistv2/zz_controller.go deleted file mode 100755 index a03b573..0000000 --- a/internal/controller/lb/whitelistv2/zz_controller.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package whitelistv2 - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/crossplane-runtime/pkg/statemetrics" - tjcontroller "github.com/crossplane/upjet/pkg/controller" - "github.com/crossplane/upjet/pkg/controller/handler" - "github.com/crossplane/upjet/pkg/terraform" - "github.com/pkg/errors" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" - features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" -) - -// Setup adds a controller that reconciles WhitelistV2 managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.WhitelistV2_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.WhitelistV2_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.WhitelistV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_whitelist_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableBetaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - if o.MetricOptions != nil { - opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) - } - - // register webhooks for the kind v1alpha1.WhitelistV2 - // if they're enabled. - if o.StartWebhooks { - if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.WhitelistV2{}). - Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.WhitelistV2") - } - } - - if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { - stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.WhitelistV2List{}, o.MetricOptions.PollStateMetricInterval, - ) - if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.WhitelistV2List") - } - } - - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.WhitelistV2_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.WhitelistV2{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 61a2593..4d024b0 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -69,25 +69,16 @@ import ( imagev2ims "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/ims/imagev2" grantv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/kms/grantv1" keyv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/kms/keyv1" - certificatev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/certificatev2" certificatev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/certificatev3" ipgroupv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/ipgroupv3" - l7policyv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/l7policyv2" - l7rulev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/l7rulev2" - listenerv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/listenerv2" listenerv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/listenerv3" - loadbalancerv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/loadbalancerv2" loadbalancerv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/loadbalancerv3" - memberv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/memberv2" memberv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/memberv3" - monitorv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/monitorv2" monitorv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/monitorv3" policyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/policyv3" - poolv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/poolv2" poolv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/poolv3" rulev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/rulev3" securitypolicyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/securitypolicyv3" - whitelistv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/lb/whitelistv2" groupv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/logtank/groupv2" topicv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/logtank/topicv2" transferv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/logtank/transferv2" @@ -224,25 +215,16 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { imagev2ims.Setup, grantv1.Setup, keyv1.Setup, - certificatev2.Setup, certificatev3.Setup, ipgroupv3.Setup, - l7policyv2.Setup, - l7rulev2.Setup, - listenerv2.Setup, listenerv3.Setup, - loadbalancerv2.Setup, loadbalancerv3.Setup, - memberv2.Setup, memberv3.Setup, - monitorv2.Setup, monitorv3.Setup, policyv3.Setup, - poolv2.Setup, poolv3.Setup, rulev3.Setup, securitypolicyv3.Setup, - whitelistv2.Setup, groupv2.Setup, topicv2.Setup, transferv2.Setup, diff --git a/package/crds/cce.opentelekomcloud.crossplane.io_clusterv3s.yaml b/package/crds/cce.opentelekomcloud.crossplane.io_clusterv3s.yaml index 38dbd38..6c76e3b 100644 --- a/package/crds/cce.opentelekomcloud.crossplane.io_clusterv3s.yaml +++ b/package/crds/cce.opentelekomcloud.crossplane.io_clusterv3s.yaml @@ -545,6 +545,13 @@ spec: type: boolean region: type: string + securityGroupId: + description: |- + Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + Otherwise, the system will automatically create a default worker node security group for you. + The default worker node security group needs to allow access from certain ports to ensure normal communications. + Changing this parameter will create a new cluster resource. + type: string subnetId: description: The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. @@ -1187,6 +1194,13 @@ spec: type: boolean region: type: string + securityGroupId: + description: |- + Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + Otherwise, the system will automatically create a default worker node security group for you. + The default worker node security group needs to allow access from certain ports to ensure normal communications. + Changing this parameter will create a new cluster resource. + type: string subnetId: description: The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. @@ -1759,6 +1773,13 @@ spec: description: ID of the autogenerated security group for the CCE master port. type: string + securityGroupId: + description: |- + Default worker node security group ID of the cluster. If specified, the cluster will be bound to the target security group. + Otherwise, the system will automatically create a default worker node security group for you. + The default worker node security group needs to allow access from certain ports to ensure normal communications. + Changing this parameter will create a new cluster resource. + type: string securityGroupNode: description: ID of the autogenerated security group for the CCE nodes. diff --git a/package/crds/cce.opentelekomcloud.crossplane.io_nodepoolv3s.yaml b/package/crds/cce.opentelekomcloud.crossplane.io_nodepoolv3s.yaml index 86e4546..2b04fcc 100644 --- a/package/crds/cce.opentelekomcloud.crossplane.io_nodepoolv3s.yaml +++ b/package/crds/cce.opentelekomcloud.crossplane.io_nodepoolv3s.yaml @@ -612,6 +612,14 @@ spec: enabled, install the autoscaler add-on to use the auto scaling feature. type: boolean + securityGroupIds: + description: |- + Specifies the list of custom security group IDs for the node pool. + If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + the rules of the port on which CCE running depends. + items: + type: string + type: array serverGroupReference: description: ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. @@ -1281,6 +1289,14 @@ spec: enabled, install the autoscaler add-on to use the auto scaling feature. type: boolean + securityGroupIds: + description: |- + Specifies the list of custom security group IDs for the node pool. + If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + the rules of the port on which CCE running depends. + items: + type: string + type: array serverGroupReference: description: ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. @@ -1744,6 +1760,14 @@ spec: enabled, install the autoscaler add-on to use the auto scaling feature. type: boolean + securityGroupIds: + description: |- + Specifies the list of custom security group IDs for the node pool. + If specified, the nodes will be put in these security groups. When specifying a security group, do not modify + the rules of the port on which CCE running depends. + items: + type: string + type: array serverGroupReference: description: ECS group ID. If this parameter is specified, all nodes in the node pool will be created in this ECS group. diff --git a/package/crds/ecs.opentelekomcloud.crossplane.io_instancev1s.yaml b/package/crds/ecs.opentelekomcloud.crossplane.io_instancev1s.yaml index f135211..a9e645f 100644 --- a/package/crds/ecs.opentelekomcloud.crossplane.io_instancev1s.yaml +++ b/package/crds/ecs.opentelekomcloud.crossplane.io_instancev1s.yaml @@ -451,6 +451,25 @@ spec: type: object type: object type: array + osSchedulerHints: + description: Schedules ECSs, for example, by configuring an ECS + group. The os_scheduler_hints object structure is documented + below. Changing this creates a new server. + items: + properties: + dedicatedHostId: + description: Specifies the dedicated host ID. A Dedicated + Host ID takes effect only when tenancy is set to dedicated. + type: string + group: + description: Specifies the ECS group ID in UUID format. + type: string + tenancy: + description: 'Creates ECSs on a dedicated or shared host. + Available options are: dedicated or shared.' + type: string + type: object + type: array passwordSecretRef: description: |- The administrative password to assign to the server. @@ -1049,6 +1068,25 @@ spec: type: object type: object type: array + osSchedulerHints: + description: Schedules ECSs, for example, by configuring an ECS + group. The os_scheduler_hints object structure is documented + below. Changing this creates a new server. + items: + properties: + dedicatedHostId: + description: Specifies the dedicated host ID. A Dedicated + Host ID takes effect only when tenancy is set to dedicated. + type: string + group: + description: Specifies the ECS group ID in UUID format. + type: string + tenancy: + description: 'Creates ECSs on a dedicated or shared host. + Available options are: dedicated or shared.' + type: string + type: object + type: array passwordSecretRef: description: |- The administrative password to assign to the server. @@ -1538,6 +1576,25 @@ spec: type: string type: object type: array + osSchedulerHints: + description: Schedules ECSs, for example, by configuring an ECS + group. The os_scheduler_hints object structure is documented + below. Changing this creates a new server. + items: + properties: + dedicatedHostId: + description: Specifies the dedicated host ID. A Dedicated + Host ID takes effect only when tenancy is set to dedicated. + type: string + group: + description: Specifies the ECS group ID in UUID format. + type: string + tenancy: + description: 'Creates ECSs on a dedicated or shared host. + Available options are: dedicated or shared.' + type: string + type: object + type: array securityGroups: description: |- An array of one or more security group IDs @@ -1548,7 +1605,7 @@ spec: type: array x-kubernetes-list-type: set systemDiskId: - description: The ID of the system disk. + description: (String) The ID of the system disk. type: string systemDiskKmsId: description: |- diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_certificatev2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_certificatev2s.yaml deleted file mode 100644 index bd49c5a..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_certificatev2s.yaml +++ /dev/null @@ -1,436 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: certificatev2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: CertificateV2 - listKind: CertificateV2List - plural: certificatev2s - singular: certificatev2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: CertificateV2 is the Schema for the CertificateV2s API. Manages - a ELB Certificate resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: CertificateV2Spec defines the desired state of CertificateV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - certificate: - description: The public encrypted key of the Certificate, PEM - format. - type: string - description: - description: Human-readable description for the Certificate. - type: string - domain: - description: The domain of the Certificate. - type: string - name: - description: |- - Human-readable name for the Certificate. Does not have - to be unique. - type: string - privateKey: - description: |- - The private encrypted key of the Certificate, PEM format. - Required for certificates of type server. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - A Networking client is needed to create an LB certificate. If omitted, the - region argument of the provider is used. Changing this creates a new - LB certificate. - type: string - type: - description: |- - The type of certificate the container holds. Either server or client. - Defaults to server if not set. Changing this creates a new LB certificate. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - certificate: - description: The public encrypted key of the Certificate, PEM - format. - type: string - description: - description: Human-readable description for the Certificate. - type: string - domain: - description: The domain of the Certificate. - type: string - name: - description: |- - Human-readable name for the Certificate. Does not have - to be unique. - type: string - privateKey: - description: |- - The private encrypted key of the Certificate, PEM format. - Required for certificates of type server. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - A Networking client is needed to create an LB certificate. If omitted, the - region argument of the provider is used. Changing this creates a new - LB certificate. - type: string - type: - description: |- - The type of certificate the container holds. Either server or client. - Defaults to server if not set. Changing this creates a new LB certificate. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.certificate is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.certificate) - || (has(self.initProvider) && has(self.initProvider.certificate))' - status: - description: CertificateV2Status defines the observed state of CertificateV2. - properties: - atProvider: - properties: - certificate: - description: The public encrypted key of the Certificate, PEM - format. - type: string - createTime: - description: Indicates the creation time. - type: string - description: - description: Human-readable description for the Certificate. - type: string - domain: - description: The domain of the Certificate. - type: string - expireTime: - description: Indicates certificate expiration time. - type: string - id: - type: string - name: - description: |- - Human-readable name for the Certificate. Does not have - to be unique. - type: string - privateKey: - description: |- - The private encrypted key of the Certificate, PEM format. - Required for certificates of type server. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - A Networking client is needed to create an LB certificate. If omitted, the - region argument of the provider is used. Changing this creates a new - LB certificate. - type: string - type: - description: |- - The type of certificate the container holds. Either server or client. - Defaults to server if not set. Changing this creates a new LB certificate. - type: string - updateTime: - description: Indicates the update time. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_ipgroupv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_ipgroupv3s.yaml index 44d24d0..baaeed7 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_ipgroupv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_ipgroupv3s.yaml @@ -91,6 +91,80 @@ spec: Specifies the IP addresses in the IP address group. IPv6 is unsupported. The value cannot be an IPv6 address. type: string + ipRef: + description: Reference to a EIPV1 in vpc to populate ip. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + ipSelector: + description: Selector for a EIPV1 in vpc to populate ip. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object type: array name: @@ -99,6 +173,82 @@ spec: projectId: description: Specifies the project ID of the IP address group. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -131,6 +281,80 @@ spec: Specifies the IP addresses in the IP address group. IPv6 is unsupported. The value cannot be an IPv6 address. type: string + ipRef: + description: Reference to a EIPV1 in vpc to populate ip. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + ipSelector: + description: Selector for a EIPV1 in vpc to populate ip. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object type: array name: @@ -139,6 +363,82 @@ spec: projectId: description: Specifies the project ID of the IP address group. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_l7policyv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_l7policyv2s.yaml deleted file mode 100644 index 79fdf42..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_l7policyv2s.yaml +++ /dev/null @@ -1,483 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: l7policyv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: L7PolicyV2 - listKind: L7PolicyV2List - plural: l7policyv2s - singular: l7policyv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: L7PolicyV2 is the Schema for the L7PolicyV2s API. Manages a ELB - L7 Policy resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: L7PolicyV2Spec defines the desired state of L7PolicyV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - action: - description: |- - The L7 Policy action - can either be REDIRECT_TO_POOL, - or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - type: string - adminStateUp: - description: |- - The administrative state of the L7 Policy. - This value can only be true (UP). - type: boolean - description: - description: Human-readable description for the L7 Policy. - type: string - listenerId: - description: |- - The Listener on which the L7 Policy will be associated with. - Changing this creates a new L7 Policy. - type: string - name: - description: |- - Human-readable name for the L7 Policy. Does not have - to be unique. - type: string - position: - description: The position of this policy on the listener. Positions - start at 1. Changing this creates a new L7 Policy. - type: number - redirectListenerId: - description: |- - Requests matching this policy will be redirected to the listener with this ID. - Only valid if action is REDIRECT_TO_LISTENER. - type: string - redirectPoolId: - description: |- - Requests matching this policy will be redirected to the pool with this ID. - Only valid if action is REDIRECT_TO_POOL. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Policy. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Policy. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Policy. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - action: - description: |- - The L7 Policy action - can either be REDIRECT_TO_POOL, - or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - type: string - adminStateUp: - description: |- - The administrative state of the L7 Policy. - This value can only be true (UP). - type: boolean - description: - description: Human-readable description for the L7 Policy. - type: string - listenerId: - description: |- - The Listener on which the L7 Policy will be associated with. - Changing this creates a new L7 Policy. - type: string - name: - description: |- - Human-readable name for the L7 Policy. Does not have - to be unique. - type: string - position: - description: The position of this policy on the listener. Positions - start at 1. Changing this creates a new L7 Policy. - type: number - redirectListenerId: - description: |- - Requests matching this policy will be redirected to the listener with this ID. - Only valid if action is REDIRECT_TO_LISTENER. - type: string - redirectPoolId: - description: |- - Requests matching this policy will be redirected to the pool with this ID. - Only valid if action is REDIRECT_TO_POOL. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Policy. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Policy. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Policy. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.action is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.action) - || (has(self.initProvider) && has(self.initProvider.action))' - - message: spec.forProvider.listenerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.listenerId) - || (has(self.initProvider) && has(self.initProvider.listenerId))' - status: - description: L7PolicyV2Status defines the observed state of L7PolicyV2. - properties: - atProvider: - properties: - action: - description: |- - The L7 Policy action - can either be REDIRECT_TO_POOL, - or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. - type: string - adminStateUp: - description: |- - The administrative state of the L7 Policy. - This value can only be true (UP). - type: boolean - description: - description: Human-readable description for the L7 Policy. - type: string - id: - description: The unique ID for the L7 policy. - type: string - listenerId: - description: |- - The Listener on which the L7 Policy will be associated with. - Changing this creates a new L7 Policy. - type: string - name: - description: |- - Human-readable name for the L7 Policy. Does not have - to be unique. - type: string - position: - description: The position of this policy on the listener. Positions - start at 1. Changing this creates a new L7 Policy. - type: number - redirectListenerId: - description: |- - Requests matching this policy will be redirected to the listener with this ID. - Only valid if action is REDIRECT_TO_LISTENER. - type: string - redirectPoolId: - description: |- - Requests matching this policy will be redirected to the pool with this ID. - Only valid if action is REDIRECT_TO_POOL. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Policy. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Policy. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Policy. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_l7rulev2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_l7rulev2s.yaml deleted file mode 100644 index 8d027d5..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_l7rulev2s.yaml +++ /dev/null @@ -1,470 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: l7rulev2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: L7RuleV2 - listKind: L7RuleV2List - plural: l7rulev2s - singular: l7rulev2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: L7RuleV2 is the Schema for the L7RuleV2s API. Manages a ELB L7 - Rule resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: L7RuleV2Spec defines the desired state of L7RuleV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - adminStateUp: - description: |- - The administrative state of the L7 Rule. - The value can only be true (UP). - type: boolean - compareType: - description: |- - The comparison type for the L7 rule - can either be - STARTS_WITH, EQUAL_TO or REGEX - type: string - key: - description: |- - The key to use for the comparison. For example, the name of the cookie to - evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - type: string - l7policyId: - description: |- - The ID of the L7 Policy to query. Changing this creates a new - L7 Rule. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Rule. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Rule. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Rule. - type: string - type: - description: The L7 Rule type - can either be HOST_NAME or PATH. - Changing this creates a new L7 Rule. - type: string - value: - description: |- - The value to use for the comparison. For example, the file type to - compare. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - adminStateUp: - description: |- - The administrative state of the L7 Rule. - The value can only be true (UP). - type: boolean - compareType: - description: |- - The comparison type for the L7 rule - can either be - STARTS_WITH, EQUAL_TO or REGEX - type: string - key: - description: |- - The key to use for the comparison. For example, the name of the cookie to - evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - type: string - l7policyId: - description: |- - The ID of the L7 Policy to query. Changing this creates a new - L7 Rule. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Rule. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Rule. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Rule. - type: string - type: - description: The L7 Rule type - can either be HOST_NAME or PATH. - Changing this creates a new L7 Rule. - type: string - value: - description: |- - The value to use for the comparison. For example, the file type to - compare. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.compareType is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.compareType) - || (has(self.initProvider) && has(self.initProvider.compareType))' - - message: spec.forProvider.l7policyId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.l7policyId) - || (has(self.initProvider) && has(self.initProvider.l7policyId))' - - message: spec.forProvider.type is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.type) - || (has(self.initProvider) && has(self.initProvider.type))' - - message: spec.forProvider.value is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.value) - || (has(self.initProvider) && has(self.initProvider.value))' - status: - description: L7RuleV2Status defines the observed state of L7RuleV2. - properties: - atProvider: - properties: - adminStateUp: - description: |- - The administrative state of the L7 Rule. - The value can only be true (UP). - type: boolean - compareType: - description: |- - The comparison type for the L7 rule - can either be - STARTS_WITH, EQUAL_TO or REGEX - type: string - id: - description: The unique ID for the L7 Rule. - type: string - key: - description: |- - The key to use for the comparison. For example, the name of the cookie to - evaluate. Valid when type is set to COOKIE or HEADER. Changing this creates a new L7 Rule. - type: string - l7policyId: - description: |- - The ID of the L7 Policy to query. Changing this creates a new - L7 Rule. - type: string - listenerId: - description: The ID of the Listener owning this resource. - type: string - region: - description: |- - The region in which to obtain the V2 Networking client. - If omitted, the region argument of the provider is used. - Changing this creates a new L7 Rule. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the L7 Rule. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new L7 Rule. - type: string - type: - description: The L7 Rule type - can either be HOST_NAME or PATH. - Changing this creates a new L7 Rule. - type: string - value: - description: |- - The value to use for the comparison. For example, the file type to - compare. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_listenerv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_listenerv2s.yaml deleted file mode 100644 index be7e444..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_listenerv2s.yaml +++ /dev/null @@ -1,695 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: listenerv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: ListenerV2 - listKind: ListenerV2List - plural: listenerv2s - singular: listenerv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: ListenerV2 is the Schema for the ListenerV2s API. Manages a ELB - Listener resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ListenerV2Spec defines the desired state of ListenerV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - adminStateUp: - description: |- - The administrative state of the Listener. - A valid value is true (UP) or false (DOWN). - type: boolean - clientCaTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type client - used by the listener. The value contains a maximum of 128 characters. The default value is null. - The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - the client CA whose certificate is registered in the referenced certificate container. The option is - effective only in conjunction with TERMINATED_HTTPS. - type: string - defaultPoolId: - description: |- - The ID of the default pool with which the - Listener is associated. Changing this creates a new Listener. - type: string - defaultTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type server - used by the listener. The value contains a maximum of 128 characters. The default value is null. - This parameter is required when protocol is set to TERMINATED_HTTPS. - See here - for more information. - type: string - description: - description: Human-readable description for the Listener. - type: string - http2Enable: - description: |- - true to enable HTTP/2 mode of ELB. - HTTP/2 is disabled by default if not set. - type: boolean - ipGroup: - description: Specifies the IP address group associated with the - listener. - items: - properties: - enable: - description: |- - Specifies whether to enable access control. - true: Access control will be enabled. - false (default): Access control will be disabled. - type: boolean - id: - description: |- - Specifies the ID of the IP address group associated with the listener. - Specifies the ID of the IP address group associated with the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - type: string - type: - description: |- - Specifies how access to the listener is controlled. - white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - type: string - type: object - type: array - loadbalancerId: - description: |- - The load balancer on which to provision this - Listener. Changing this creates a new Listener. - type: string - name: - description: |- - Human-readable name for the Listener. Does not have - to be unique. - type: string - protocol: - description: |- - The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - Changing this creates a new Listener. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new Listener. - type: number - region: - type: string - sniContainerRefs: - description: |- - Lists the IDs of SNI certificates (server certificates with a domain name) used - by the listener. If the parameter value is an empty list, the SNI feature is disabled. - The default value is []. It only works in conjunction with TERMINATED_HTTPS. - items: - type: string - type: array - x-kubernetes-list-type: set - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer - listener. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Listener. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new Listener. - type: string - tlsCiphersPolicy: - description: |- - Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - here for details about the supported cipher - suites. The option is effective only in conjunction with TERMINATED_HTTPS. - type: string - transparentClientIpEnable: - description: |- - Specifies whether to pass source IP addresses of the clients to - backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - value can be true or false with false by default. - type: boolean - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - adminStateUp: - description: |- - The administrative state of the Listener. - A valid value is true (UP) or false (DOWN). - type: boolean - clientCaTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type client - used by the listener. The value contains a maximum of 128 characters. The default value is null. - The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - the client CA whose certificate is registered in the referenced certificate container. The option is - effective only in conjunction with TERMINATED_HTTPS. - type: string - defaultPoolId: - description: |- - The ID of the default pool with which the - Listener is associated. Changing this creates a new Listener. - type: string - defaultTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type server - used by the listener. The value contains a maximum of 128 characters. The default value is null. - This parameter is required when protocol is set to TERMINATED_HTTPS. - See here - for more information. - type: string - description: - description: Human-readable description for the Listener. - type: string - http2Enable: - description: |- - true to enable HTTP/2 mode of ELB. - HTTP/2 is disabled by default if not set. - type: boolean - ipGroup: - description: Specifies the IP address group associated with the - listener. - items: - properties: - enable: - description: |- - Specifies whether to enable access control. - true: Access control will be enabled. - false (default): Access control will be disabled. - type: boolean - id: - description: |- - Specifies the ID of the IP address group associated with the listener. - Specifies the ID of the IP address group associated with the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - type: string - type: - description: |- - Specifies how access to the listener is controlled. - white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - type: string - type: object - type: array - loadbalancerId: - description: |- - The load balancer on which to provision this - Listener. Changing this creates a new Listener. - type: string - name: - description: |- - Human-readable name for the Listener. Does not have - to be unique. - type: string - protocol: - description: |- - The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - Changing this creates a new Listener. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new Listener. - type: number - region: - type: string - sniContainerRefs: - description: |- - Lists the IDs of SNI certificates (server certificates with a domain name) used - by the listener. If the parameter value is an empty list, the SNI feature is disabled. - The default value is []. It only works in conjunction with TERMINATED_HTTPS. - items: - type: string - type: array - x-kubernetes-list-type: set - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer - listener. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Listener. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new Listener. - type: string - tlsCiphersPolicy: - description: |- - Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - here for details about the supported cipher - suites. The option is effective only in conjunction with TERMINATED_HTTPS. - type: string - transparentClientIpEnable: - description: |- - Specifies whether to pass source IP addresses of the clients to - backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - value can be true or false with false by default. - type: boolean - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.loadbalancerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.loadbalancerId) - || (has(self.initProvider) && has(self.initProvider.loadbalancerId))' - - message: spec.forProvider.protocol is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.protocol) - || (has(self.initProvider) && has(self.initProvider.protocol))' - - message: spec.forProvider.protocolPort is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.protocolPort) - || (has(self.initProvider) && has(self.initProvider.protocolPort))' - status: - description: ListenerV2Status defines the observed state of ListenerV2. - properties: - atProvider: - properties: - adminStateUp: - description: |- - The administrative state of the Listener. - A valid value is true (UP) or false (DOWN). - type: boolean - clientCaTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type client - used by the listener. The value contains a maximum of 128 characters. The default value is null. - The loadbalancer only establishes a TLS connection if the client presents a certificate delivered by - the client CA whose certificate is registered in the referenced certificate container. The option is - effective only in conjunction with TERMINATED_HTTPS. - type: string - defaultPoolId: - description: |- - The ID of the default pool with which the - Listener is associated. Changing this creates a new Listener. - type: string - defaultTlsContainerRef: - description: |- - Specifies the ID of a certificate container of type server - used by the listener. The value contains a maximum of 128 characters. The default value is null. - This parameter is required when protocol is set to TERMINATED_HTTPS. - See here - for more information. - type: string - description: - description: Human-readable description for the Listener. - type: string - http2Enable: - description: |- - true to enable HTTP/2 mode of ELB. - HTTP/2 is disabled by default if not set. - type: boolean - id: - description: |- - Specifies the ID of the IP address group associated with the listener. - Specifies the ID of the IP address group associated with the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - type: string - ipGroup: - description: Specifies the IP address group associated with the - listener. - items: - properties: - enable: - description: |- - Specifies whether to enable access control. - true: Access control will be enabled. - false (default): Access control will be disabled. - type: boolean - id: - description: |- - Specifies the ID of the IP address group associated with the listener. - Specifies the ID of the IP address group associated with the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. - If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. - type: string - type: - description: |- - Specifies how access to the listener is controlled. - white (default): A whitelist will be configured. Only IP addresses in the whitelist can access the listener. - black: A blacklist will be configured. IP addresses in the blacklist are not allowed to access the listener. - type: string - type: object - type: array - loadbalancerId: - description: |- - The load balancer on which to provision this - Listener. Changing this creates a new Listener. - type: string - name: - description: |- - Human-readable name for the Listener. Does not have - to be unique. - type: string - protocol: - description: |- - The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. - Changing this creates a new Listener. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new Listener. - type: number - region: - type: string - sniContainerRefs: - description: |- - Lists the IDs of SNI certificates (server certificates with a domain name) used - by the listener. If the parameter value is an empty list, the SNI feature is disabled. - The default value is []. It only works in conjunction with TERMINATED_HTTPS. - items: - type: string - type: array - x-kubernetes-list-type: set - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer - listener. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Listener. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new Listener. - type: string - tlsCiphersPolicy: - description: |- - Controls the TLS version used. Supported values are tls-1-0, tls-1-1, - tls-1-2 and tls-1-2-strict. If not set, the loadbalancer uses tls-1-0. See - here for details about the supported cipher - suites. The option is effective only in conjunction with TERMINATED_HTTPS. - type: string - transparentClientIpEnable: - description: |- - Specifies whether to pass source IP addresses of the clients to - backend servers. The value is always true for HTTP and HTTPS listeners. For TCP and UDP listeners the - value can be true or false with false by default. - type: boolean - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_listenerv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_listenerv3s.yaml index 3ee23f0..5f472d2 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_listenerv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_listenerv3s.yaml @@ -97,10 +97,158 @@ spec: Specifies the ID of the default backend server group. If there is no matched forwarding policy, requests are forwarded to the default backend server for processing. type: string + defaultPoolIdRef: + description: Reference to a PoolV3 in lb to populate defaultPoolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + defaultPoolIdSelector: + description: Selector for a PoolV3 in lb to populate defaultPoolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object defaultTlsContainerRef: description: Specifies the ID of the server certificate used by the listener. type: string + defaultTlsContainerRefRef: + description: Reference to a CertificateV3 in lb to populate defaultTlsContainerRef. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + defaultTlsContainerRefSelector: + description: Selector for a CertificateV3 in lb to populate defaultTlsContainerRef. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object description: description: Provides supplementary information about the listener. type: string @@ -159,6 +307,82 @@ spec: If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. type: string + idRef: + description: Reference to a IpgroupV3 in lb to populate + id. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + idSelector: + description: Selector for a IpgroupV3 in lb to populate + id. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: description: |- Specifies how access to the listener is controlled. @@ -174,6 +398,80 @@ spec: description: Specifies the ID of the load balancer that the listener is added to. type: string + loadbalancerIdRef: + description: Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + loadbalancerIdSelector: + description: Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object memberRetryEnable: description: |- Specifies whether to enable health check retries for backend servers. @@ -202,6 +500,82 @@ spec: securityPolicyId: description: Specifies the ID of the custom security policy. type: string + securityPolicyIdRef: + description: Reference to a SecurityPolicyV3 in lb to populate + securityPolicyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + securityPolicyIdSelector: + description: Selector for a SecurityPolicyV3 in lb to populate + securityPolicyId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object sniContainerRefs: description: |- Lists the IDs of SNI certificates (server certificates with domain names) used by the listener. @@ -268,10 +642,158 @@ spec: Specifies the ID of the default backend server group. If there is no matched forwarding policy, requests are forwarded to the default backend server for processing. type: string + defaultPoolIdRef: + description: Reference to a PoolV3 in lb to populate defaultPoolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + defaultPoolIdSelector: + description: Selector for a PoolV3 in lb to populate defaultPoolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object defaultTlsContainerRef: description: Specifies the ID of the server certificate used by the listener. type: string + defaultTlsContainerRefRef: + description: Reference to a CertificateV3 in lb to populate defaultTlsContainerRef. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + defaultTlsContainerRefSelector: + description: Selector for a CertificateV3 in lb to populate defaultTlsContainerRef. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object description: description: Provides supplementary information about the listener. type: string @@ -330,6 +852,82 @@ spec: If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to whitelist, no IP addresses are allowed to access the listener. If ip_list in opentelekomcloud_lb_ipgroup_v3 is set to an empty array [] and type to blacklist, any IP address is allowed to access the listener. type: string + idRef: + description: Reference to a IpgroupV3 in lb to populate + id. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + idSelector: + description: Selector for a IpgroupV3 in lb to populate + id. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: description: |- Specifies how access to the listener is controlled. @@ -345,6 +943,80 @@ spec: description: Specifies the ID of the load balancer that the listener is added to. type: string + loadbalancerIdRef: + description: Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + loadbalancerIdSelector: + description: Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object memberRetryEnable: description: |- Specifies whether to enable health check retries for backend servers. @@ -373,6 +1045,82 @@ spec: securityPolicyId: description: Specifies the ID of the custom security policy. type: string + securityPolicyIdRef: + description: Reference to a SecurityPolicyV3 in lb to populate + securityPolicyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + securityPolicyIdSelector: + description: Selector for a SecurityPolicyV3 in lb to populate + securityPolicyId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object sniContainerRefs: description: |- Lists the IDs of SNI certificates (server certificates with domain names) used by the listener. @@ -570,10 +1318,6 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: spec.forProvider.loadbalancerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.loadbalancerId) - || (has(self.initProvider) && has(self.initProvider.loadbalancerId))' - message: spec.forProvider.protocol is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.protocol) diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv2s.yaml deleted file mode 100644 index 4b3b320..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv2s.yaml +++ /dev/null @@ -1,466 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: loadbalancerv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: LoadbalancerV2 - listKind: LoadbalancerV2List - plural: loadbalancerv2s - singular: loadbalancerv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: LoadbalancerV2 is the Schema for the LoadbalancerV2s API. Manages - a ELB Loadbalancer resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: LoadbalancerV2Spec defines the desired state of LoadbalancerV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - adminStateUp: - description: |- - The administrative state of the loadbalancer. - A valid value is only true (UP). - type: boolean - description: - description: Human-readable description for the loadbalancer. - type: string - loadbalancerProvider: - description: |- - The name of the provider. Changing this - creates a new loadbalancer. - type: string - name: - description: |- - Human-readable name for the loadbalancer. Does not have - to be unique. - type: string - region: - type: string - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Loadbalancer. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new loadbalancer. - type: string - vipAddress: - description: |- - The ip address of the load balancer. - Changing this creates a new loadbalancer. - type: string - vipSubnetId: - description: |- - The network on which to allocate the - loadbalancer's address. A tenant can only create loadalancers on networks - authorized by policy (e.g. networks that belong to them or networks that - are shared). Changing this creates a new loadbalancer. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - adminStateUp: - description: |- - The administrative state of the loadbalancer. - A valid value is only true (UP). - type: boolean - description: - description: Human-readable description for the loadbalancer. - type: string - loadbalancerProvider: - description: |- - The name of the provider. Changing this - creates a new loadbalancer. - type: string - name: - description: |- - Human-readable name for the loadbalancer. Does not have - to be unique. - type: string - region: - type: string - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Loadbalancer. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new loadbalancer. - type: string - vipAddress: - description: |- - The ip address of the load balancer. - Changing this creates a new loadbalancer. - type: string - vipSubnetId: - description: |- - The network on which to allocate the - loadbalancer's address. A tenant can only create loadalancers on networks - authorized by policy (e.g. networks that belong to them or networks that - are shared). Changing this creates a new loadbalancer. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.vipSubnetId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.vipSubnetId) - || (has(self.initProvider) && has(self.initProvider.vipSubnetId))' - status: - description: LoadbalancerV2Status defines the observed state of LoadbalancerV2. - properties: - atProvider: - properties: - adminStateUp: - description: |- - The administrative state of the loadbalancer. - A valid value is only true (UP). - type: boolean - description: - description: Human-readable description for the loadbalancer. - type: string - id: - type: string - loadbalancerProvider: - description: |- - The name of the provider. Changing this - creates a new loadbalancer. - type: string - name: - description: |- - Human-readable name for the loadbalancer. Does not have - to be unique. - type: string - region: - type: string - tags: - additionalProperties: - type: string - description: Tags key/value pairs to associate with the loadbalancer. - type: object - x-kubernetes-map-type: granular - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the Loadbalancer. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new loadbalancer. - type: string - vipAddress: - description: |- - The ip address of the load balancer. - Changing this creates a new loadbalancer. - type: string - vipPortId: - description: The Port ID of the Load Balancer IP. - type: string - vipSubnetId: - description: |- - The network on which to allocate the - loadbalancer's address. A tenant can only create loadalancers on networks - authorized by policy (e.g. networks that belong to them or networks that - are shared). Changing this creates a new loadbalancer. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv3s.yaml index b9c2e98..e09bec8 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_loadbalancerv3s.yaml @@ -113,6 +113,84 @@ spec: type: string type: array x-kubernetes-list-type: set + networkIdsRefs: + description: References to SubnetV1 in vpc to populate networkIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + networkIdsSelector: + description: Selector for a list of SubnetV1 in vpc to populate + networkIds. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object publicIp: description: |- The elastic IP address of the instance. The public_ip structure @@ -139,6 +217,80 @@ spec: description: ID of an existing elastic IP. Required when using existing EIP. type: string + idRef: + description: Reference to a EIPV1 in vpc to populate id. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + idSelector: + description: Selector for a EIPV1 in vpc to populate id. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object ipType: description: |- Elastic IP type. The value can be 5_bgp or 5_mailbgp. @@ -151,10 +303,158 @@ spec: ID of the router (or VPC) this LoadBalancer belongs to. Changing this creates a new LoadBalancer. type: string + routerIdRef: + description: Reference to a VpcV1 in vpc to populate routerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + routerIdSelector: + description: Selector for a VpcV1 in vpc to populate routerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetId: description: The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. type: string + subnetIdRef: + description: Reference to a SubnetV1 in vpc to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a SubnetV1 in vpc to populate subnetId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -219,6 +519,84 @@ spec: type: string type: array x-kubernetes-list-type: set + networkIdsRefs: + description: References to SubnetV1 in vpc to populate networkIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + networkIdsSelector: + description: Selector for a list of SubnetV1 in vpc to populate + networkIds. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object publicIp: description: |- The elastic IP address of the instance. The public_ip structure @@ -245,6 +623,80 @@ spec: description: ID of an existing elastic IP. Required when using existing EIP. type: string + idRef: + description: Reference to a EIPV1 in vpc to populate id. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + idSelector: + description: Selector for a EIPV1 in vpc to populate id. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object ipType: description: |- Elastic IP type. The value can be 5_bgp or 5_mailbgp. @@ -257,10 +709,158 @@ spec: ID of the router (or VPC) this LoadBalancer belongs to. Changing this creates a new LoadBalancer. type: string + routerIdRef: + description: Reference to a VpcV1 in vpc to populate routerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + routerIdSelector: + description: Selector for a VpcV1 in vpc to populate routerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetId: description: The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. type: string + subnetIdRef: + description: Reference to a SubnetV1 in vpc to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a SubnetV1 in vpc to populate subnetId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -444,10 +1044,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZones) || (has(self.initProvider) && has(self.initProvider.availabilityZones))' - - message: spec.forProvider.networkIds is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.networkIds) - || (has(self.initProvider) && has(self.initProvider.networkIds))' status: description: LoadbalancerV3Status defines the observed state of LoadbalancerV3. properties: diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_memberv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_memberv2s.yaml deleted file mode 100644 index 6657381..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_memberv2s.yaml +++ /dev/null @@ -1,467 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: memberv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: MemberV2 - listKind: MemberV2List - plural: memberv2s - singular: memberv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: MemberV2 is the Schema for the MemberV2s API. Manages a ELB Member - resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: MemberV2Spec defines the desired state of MemberV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - address: - description: |- - The IP address of the member to receive traffic from - the load balancer. Changing this creates a new member. - type: string - adminStateUp: - description: |- - The administrative state of the member. - A valid value is true (UP) or false (DOWN). - type: boolean - name: - description: Human-readable name for the member. - type: string - poolId: - description: |- - The id of the pool that this member will be - assigned to. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new member. - type: number - region: - type: string - subnetId: - description: The subnet in which to access the member - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the member. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new member. - type: string - weight: - description: |- - A positive integer value that indicates the relative - portion of traffic that this member should receive from the pool. For - example, a member with a weight of 10 receives five times as much traffic - as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - type: number - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - address: - description: |- - The IP address of the member to receive traffic from - the load balancer. Changing this creates a new member. - type: string - adminStateUp: - description: |- - The administrative state of the member. - A valid value is true (UP) or false (DOWN). - type: boolean - name: - description: Human-readable name for the member. - type: string - poolId: - description: |- - The id of the pool that this member will be - assigned to. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new member. - type: number - region: - type: string - subnetId: - description: The subnet in which to access the member - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the member. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new member. - type: string - weight: - description: |- - A positive integer value that indicates the relative - portion of traffic that this member should receive from the pool. For - example, a member with a weight of 10 receives five times as much traffic - as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - type: number - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.address is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.address) - || (has(self.initProvider) && has(self.initProvider.address))' - - message: spec.forProvider.poolId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.poolId) - || (has(self.initProvider) && has(self.initProvider.poolId))' - - message: spec.forProvider.protocolPort is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.protocolPort) - || (has(self.initProvider) && has(self.initProvider.protocolPort))' - - message: spec.forProvider.subnetId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.subnetId) - || (has(self.initProvider) && has(self.initProvider.subnetId))' - status: - description: MemberV2Status defines the observed state of MemberV2. - properties: - atProvider: - properties: - address: - description: |- - The IP address of the member to receive traffic from - the load balancer. Changing this creates a new member. - type: string - adminStateUp: - description: |- - The administrative state of the member. - A valid value is true (UP) or false (DOWN). - type: boolean - id: - description: The unique ID for the member. - type: string - name: - description: Human-readable name for the member. - type: string - poolId: - description: |- - The id of the pool that this member will be - assigned to. - type: string - protocolPort: - description: |- - The port on which to listen for client traffic. - Changing this creates a new member. - type: number - region: - type: string - subnetId: - description: The subnet in which to access the member - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the member. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new member. - type: string - weight: - description: |- - A positive integer value that indicates the relative - portion of traffic that this member should receive from the pool. For - example, a member with a weight of 10 receives five times as much traffic - as a member with a weight of 2. If the value is 0, the backend server will not accept new requests - type: number - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_memberv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_memberv3s.yaml index 0252cb0..2689510 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_memberv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_memberv3s.yaml @@ -82,9 +82,159 @@ spec: type: string poolId: type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: Specifies the project ID. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object protocolPort: description: |- Specifies the port used by the backend server to receive requests. The value should be a @@ -93,6 +243,80 @@ spec: subnetId: description: ', for example, 192.168.3.11.' type: string + subnetIdRef: + description: Reference to a SubnetV1 in vpc to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a SubnetV1 in vpc to populate subnetId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object weight: description: Specifies the weight of the backend server. type: number @@ -119,9 +343,159 @@ spec: type: string poolId: type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: Specifies the project ID. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object protocolPort: description: |- Specifies the port used by the backend server to receive requests. The value should be a @@ -130,6 +504,80 @@ spec: subnetId: description: ', for example, 192.168.3.11.' type: string + subnetIdRef: + description: Reference to a SubnetV1 in vpc to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a SubnetV1 in vpc to populate subnetId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object weight: description: Specifies the weight of the backend server. type: number @@ -306,10 +754,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.address) || (has(self.initProvider) && has(self.initProvider.address))' - - message: spec.forProvider.poolId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.poolId) - || (has(self.initProvider) && has(self.initProvider.poolId))' - message: spec.forProvider.protocolPort is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.protocolPort) diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_monitorv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_monitorv2s.yaml deleted file mode 100644 index 92449bf..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_monitorv2s.yaml +++ /dev/null @@ -1,549 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: monitorv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: MonitorV2 - listKind: MonitorV2List - plural: monitorv2s - singular: monitorv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: MonitorV2 is the Schema for the MonitorV2s API. Manages a ELB - Monitor resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: MonitorV2Spec defines the desired state of MonitorV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - adminStateUp: - description: |- - The administrative state of the monitor. - A valid value is true (UP) or false (DOWN). - type: boolean - delay: - description: The time, in seconds, between sending probes to members. - type: number - domainName: - description: The domain_name of the HTTP request during the health - check. - type: string - expectedCodes: - description: |- - Required for HTTP types. Expected HTTP codes - for a passing HTTP monitor. You can either specify a single status like - "200", or a list like "200,202". - type: string - httpMethod: - description: |- - Required for HTTP types. The HTTP method used - for requests by the monitor. If this attribute is not specified, it - defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - TRACE, OPTIONS, CONNECT, and PATCH. - type: string - maxRetries: - description: |- - Number of permissible ping failures before - changing the member's status to INACTIVE. Must be a number between 1 and 10. - type: number - monitorPort: - description: |- - Specifies the health check port. The port number - ranges from 1 to 65535. The value is left blank by default, indicating that - the port of the backend server is used as the health check port. - type: number - name: - description: The Name of the Monitor. - type: string - poolId: - description: The id of the pool that this monitor will be assigned - to. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the monitor. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new monitor. - type: string - timeout: - description: |- - Maximum number of seconds for a monitor to wait for a - ping reply before it times out. The value must be less than the delay value. - type: number - type: - description: |- - The type of probe, which is TCP, UDP_CONNECT, or HTTP, - that is sent by the load balancer to verify the member state. Changing this - creates a new monitor. - type: string - urlPath: - description: |- - Required for HTTP types. URI path that will be - accessed if monitor type is HTTP. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - adminStateUp: - description: |- - The administrative state of the monitor. - A valid value is true (UP) or false (DOWN). - type: boolean - delay: - description: The time, in seconds, between sending probes to members. - type: number - domainName: - description: The domain_name of the HTTP request during the health - check. - type: string - expectedCodes: - description: |- - Required for HTTP types. Expected HTTP codes - for a passing HTTP monitor. You can either specify a single status like - "200", or a list like "200,202". - type: string - httpMethod: - description: |- - Required for HTTP types. The HTTP method used - for requests by the monitor. If this attribute is not specified, it - defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - TRACE, OPTIONS, CONNECT, and PATCH. - type: string - maxRetries: - description: |- - Number of permissible ping failures before - changing the member's status to INACTIVE. Must be a number between 1 and 10. - type: number - monitorPort: - description: |- - Specifies the health check port. The port number - ranges from 1 to 65535. The value is left blank by default, indicating that - the port of the backend server is used as the health check port. - type: number - name: - description: The Name of the Monitor. - type: string - poolId: - description: The id of the pool that this monitor will be assigned - to. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the monitor. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new monitor. - type: string - timeout: - description: |- - Maximum number of seconds for a monitor to wait for a - ping reply before it times out. The value must be less than the delay value. - type: number - type: - description: |- - The type of probe, which is TCP, UDP_CONNECT, or HTTP, - that is sent by the load balancer to verify the member state. Changing this - creates a new monitor. - type: string - urlPath: - description: |- - Required for HTTP types. URI path that will be - accessed if monitor type is HTTP. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.delay is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.delay) - || (has(self.initProvider) && has(self.initProvider.delay))' - - message: spec.forProvider.maxRetries is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.maxRetries) - || (has(self.initProvider) && has(self.initProvider.maxRetries))' - - message: spec.forProvider.poolId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.poolId) - || (has(self.initProvider) && has(self.initProvider.poolId))' - - message: spec.forProvider.timeout is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.timeout) - || (has(self.initProvider) && has(self.initProvider.timeout))' - - message: spec.forProvider.type is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.type) - || (has(self.initProvider) && has(self.initProvider.type))' - status: - description: MonitorV2Status defines the observed state of MonitorV2. - properties: - atProvider: - properties: - adminStateUp: - description: |- - The administrative state of the monitor. - A valid value is true (UP) or false (DOWN). - type: boolean - delay: - description: The time, in seconds, between sending probes to members. - type: number - domainName: - description: The domain_name of the HTTP request during the health - check. - type: string - expectedCodes: - description: |- - Required for HTTP types. Expected HTTP codes - for a passing HTTP monitor. You can either specify a single status like - "200", or a list like "200,202". - type: string - httpMethod: - description: |- - Required for HTTP types. The HTTP method used - for requests by the monitor. If this attribute is not specified, it - defaults to GET. The value can be GET, HEAD, POST, PUT, DELETE, - TRACE, OPTIONS, CONNECT, and PATCH. - type: string - id: - description: The unique ID for the monitor. - type: string - maxRetries: - description: |- - Number of permissible ping failures before - changing the member's status to INACTIVE. Must be a number between 1 and 10. - type: number - monitorPort: - description: |- - Specifies the health check port. The port number - ranges from 1 to 65535. The value is left blank by default, indicating that - the port of the backend server is used as the health check port. - type: number - name: - description: The Name of the Monitor. - type: string - poolId: - description: The id of the pool that this monitor will be assigned - to. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the monitor. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new monitor. - type: string - timeout: - description: |- - Maximum number of seconds for a monitor to wait for a - ping reply before it times out. The value must be less than the delay value. - type: number - type: - description: |- - The type of probe, which is TCP, UDP_CONNECT, or HTTP, - that is sent by the load balancer to verify the member state. Changing this - creates a new monitor. - type: string - urlPath: - description: |- - Required for HTTP types. URI path that will be - accessed if monitor type is HTTP. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_monitorv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_monitorv3s.yaml index 571d00b..cf45650 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_monitorv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_monitorv3s.yaml @@ -117,10 +117,160 @@ spec: Specifies the ID of the backend server group for which the health check is configured. Changing this creates a new monitor. type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: Specifies the project ID. Changing this creates a new monitor. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object timeout: description: |- Specifies the maximum time required for waiting for a response from the health check, in @@ -190,10 +340,160 @@ spec: Specifies the ID of the backend server group for which the health check is configured. Changing this creates a new monitor. type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: Specifies the project ID. Changing this creates a new monitor. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object timeout: description: |- Specifies the maximum time required for waiting for a response from the health check, in @@ -382,10 +682,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.maxRetries) || (has(self.initProvider) && has(self.initProvider.maxRetries))' - - message: spec.forProvider.poolId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.poolId) - || (has(self.initProvider) && has(self.initProvider.poolId))' - message: spec.forProvider.timeout is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.timeout) diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_policyv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_policyv3s.yaml index ffe48b1..e68879e 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_policyv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_policyv3s.yaml @@ -109,6 +109,80 @@ spec: The Listener on which the Policy will be associated with. Changing this creates a new Policy. type: string + listenerIdRef: + description: Reference to a ListenerV3 in lb to populate listenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + listenerIdSelector: + description: Selector for a ListenerV3 in lb to populate listenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object name: description: Specifies the forwarding policy name. type: string @@ -131,16 +205,240 @@ spec: the Policy. Only administrative users can specify a tenant UUID other than their own. Changing this creates a new Policy. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectListenerId: description: |- Requests matching this policy will be redirected to the listener with this ID. Only valid if action is REDIRECT_TO_LISTENER. type: string + redirectListenerIdRef: + description: Reference to a ListenerV3 in lb to populate redirectListenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + redirectListenerIdSelector: + description: Selector for a ListenerV3 in lb to populate redirectListenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectPoolId: description: |- Requests matching this policy will be redirected to the pool with this ID. Only valid if action is REDIRECT_TO_POOL. type: string + redirectPoolIdRef: + description: Reference to a PoolV3 in lb to populate redirectPoolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + redirectPoolIdSelector: + description: Selector for a PoolV3 in lb to populate redirectPoolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectPoolsConfig: description: |- Specifies the configuration of the backend server group that the requests @@ -150,6 +448,80 @@ spec: poolId: description: '- Specifies the ID of the backend server group.' type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object weight: description: '- Specifies the weight of the backend server group. The value ranges from 0 to 100.' @@ -272,6 +644,80 @@ spec: The Listener on which the Policy will be associated with. Changing this creates a new Policy. type: string + listenerIdRef: + description: Reference to a ListenerV3 in lb to populate listenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + listenerIdSelector: + description: Selector for a ListenerV3 in lb to populate listenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object name: description: Specifies the forwarding policy name. type: string @@ -294,16 +740,240 @@ spec: the Policy. Only administrative users can specify a tenant UUID other than their own. Changing this creates a new Policy. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectListenerId: description: |- Requests matching this policy will be redirected to the listener with this ID. Only valid if action is REDIRECT_TO_LISTENER. type: string + redirectListenerIdRef: + description: Reference to a ListenerV3 in lb to populate redirectListenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + redirectListenerIdSelector: + description: Selector for a ListenerV3 in lb to populate redirectListenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectPoolId: description: |- Requests matching this policy will be redirected to the pool with this ID. Only valid if action is REDIRECT_TO_POOL. type: string + redirectPoolIdRef: + description: Reference to a PoolV3 in lb to populate redirectPoolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + redirectPoolIdSelector: + description: Selector for a PoolV3 in lb to populate redirectPoolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object redirectPoolsConfig: description: |- Specifies the configuration of the backend server group that the requests @@ -313,6 +983,80 @@ spec: poolId: description: '- Specifies the ID of the backend server group.' type: string + poolIdRef: + description: Reference to a PoolV3 in lb to populate poolId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + poolIdSelector: + description: Selector for a PoolV3 in lb to populate poolId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object weight: description: '- Specifies the weight of the backend server group. The value ranges from 0 to 100.' @@ -558,10 +1302,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.action) || (has(self.initProvider) && has(self.initProvider.action))' - - message: spec.forProvider.listenerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.listenerId) - || (has(self.initProvider) && has(self.initProvider.listenerId))' status: description: PolicyV3Status defines the observed state of PolicyV3. properties: diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_poolv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_poolv2s.yaml deleted file mode 100644 index 42739ef..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_poolv2s.yaml +++ /dev/null @@ -1,513 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: poolv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: PoolV2 - listKind: PoolV2List - plural: poolv2s - singular: poolv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: PoolV2 is the Schema for the PoolV2s API. Manages a ELB Pool - resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: PoolV2Spec defines the desired state of PoolV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - adminStateUp: - description: |- - The administrative state of the pool. - A valid value is true (UP) or false (DOWN). - type: boolean - description: - description: Human-readable description for the pool. - type: string - lbMethod: - description: |- - The load balancing algorithm to - distribute traffic to the pool's members. Must be one of - ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - type: string - listenerId: - description: |- - The Listener on which the members of the pool - will be associated with. Changing this creates a new pool. - type: string - loadbalancerId: - description: |- - The load balancer on which to provision this - pool. Changing this creates a new pool. - type: string - name: - description: Human-readable name for the pool. - type: string - persistence: - description: |- - Omit this field to prevent session persistence. Indicates - whether connections in the same session will be processed by the same Pool - member or not. Changing this creates a new pool. - items: - properties: - cookieName: - description: |- - The name of the cookie if persistence mode is set - appropriately. - type: string - type: - description: |- - The type of persistence mode. The current specification - supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - type: string - type: object - type: array - protocol: - description: |- - The protocol - can either be TCP, UDP or HTTP. - Changing this creates a new pool. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the pool. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new pool. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - adminStateUp: - description: |- - The administrative state of the pool. - A valid value is true (UP) or false (DOWN). - type: boolean - description: - description: Human-readable description for the pool. - type: string - lbMethod: - description: |- - The load balancing algorithm to - distribute traffic to the pool's members. Must be one of - ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - type: string - listenerId: - description: |- - The Listener on which the members of the pool - will be associated with. Changing this creates a new pool. - type: string - loadbalancerId: - description: |- - The load balancer on which to provision this - pool. Changing this creates a new pool. - type: string - name: - description: Human-readable name for the pool. - type: string - persistence: - description: |- - Omit this field to prevent session persistence. Indicates - whether connections in the same session will be processed by the same Pool - member or not. Changing this creates a new pool. - items: - properties: - cookieName: - description: |- - The name of the cookie if persistence mode is set - appropriately. - type: string - type: - description: |- - The type of persistence mode. The current specification - supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - type: string - type: object - type: array - protocol: - description: |- - The protocol - can either be TCP, UDP or HTTP. - Changing this creates a new pool. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the pool. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new pool. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.lbMethod is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.lbMethod) - || (has(self.initProvider) && has(self.initProvider.lbMethod))' - - message: spec.forProvider.protocol is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.protocol) - || (has(self.initProvider) && has(self.initProvider.protocol))' - status: - description: PoolV2Status defines the observed state of PoolV2. - properties: - atProvider: - properties: - adminStateUp: - description: |- - The administrative state of the pool. - A valid value is true (UP) or false (DOWN). - type: boolean - description: - description: Human-readable description for the pool. - type: string - id: - description: The unique ID for the pool. - type: string - lbMethod: - description: |- - The load balancing algorithm to - distribute traffic to the pool's members. Must be one of - ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. - type: string - listenerId: - description: |- - The Listener on which the members of the pool - will be associated with. Changing this creates a new pool. - type: string - loadbalancerId: - description: |- - The load balancer on which to provision this - pool. Changing this creates a new pool. - type: string - name: - description: Human-readable name for the pool. - type: string - persistence: - description: |- - Omit this field to prevent session persistence. Indicates - whether connections in the same session will be processed by the same Pool - member or not. Changing this creates a new pool. - items: - properties: - cookieName: - description: |- - The name of the cookie if persistence mode is set - appropriately. - type: string - type: - description: |- - The type of persistence mode. The current specification - supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. - type: string - type: object - type: array - protocol: - description: |- - The protocol - can either be TCP, UDP or HTTP. - Changing this creates a new pool. - type: string - region: - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the pool. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new pool. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_poolv3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_poolv3s.yaml index f8e88eb..864ac40 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_poolv3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_poolv3s.yaml @@ -85,9 +85,157 @@ spec: description: Specifies the ID of the listener associated with the backend server group. type: string + listenerIdRef: + description: Reference to a ListenerV3 in lb to populate listenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + listenerIdSelector: + description: Selector for a ListenerV3 in lb to populate listenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object loadbalancerId: description: Specifies the ID of the associated load balancer. type: string + loadbalancerIdRef: + description: Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + loadbalancerIdSelector: + description: Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object memberDeletionProtection: description: |- Specifies whether to enable removal protection for the pool members. @@ -100,6 +248,82 @@ spec: projectId: description: Specifies the project ID. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object protocol: description: |- Specifies the protocol used by the backend server group to receive requests. @@ -133,6 +357,80 @@ spec: description: Specifies the ID of the VPC where the backend server group works. type: string + vpcIdRef: + description: Reference to a VpcV1 in vpc to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VpcV1 in vpc to populate vpcId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -159,9 +457,157 @@ spec: description: Specifies the ID of the listener associated with the backend server group. type: string + listenerIdRef: + description: Reference to a ListenerV3 in lb to populate listenerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + listenerIdSelector: + description: Selector for a ListenerV3 in lb to populate listenerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object loadbalancerId: description: Specifies the ID of the associated load balancer. type: string + loadbalancerIdRef: + description: Reference to a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + loadbalancerIdSelector: + description: Selector for a LoadbalancerV3 in lb to populate loadbalancerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object memberDeletionProtection: description: |- Specifies whether to enable removal protection for the pool members. @@ -174,6 +620,82 @@ spec: projectId: description: Specifies the project ID. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object protocol: description: |- Specifies the protocol used by the backend server group to receive requests. @@ -207,6 +729,80 @@ spec: description: Specifies the ID of the VPC where the backend server group works. type: string + vpcIdRef: + description: Reference to a VpcV1 in vpc to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VpcV1 in vpc to populate vpcId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_rulev3s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_rulev3s.yaml index dd9dfcc..1c50347 100644 --- a/package/crds/lb.opentelekomcloud.crossplane.io_rulev3s.yaml +++ b/package/crds/lb.opentelekomcloud.crossplane.io_rulev3s.yaml @@ -98,12 +98,162 @@ spec: policyId: description: ID of the policy. type: string + policyIdRef: + description: Reference to a PolicyV3 in lb to populate policyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + policyIdSelector: + description: Selector for a PolicyV3 in lb to populate policyId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: |- Required for admins. The UUID of the tenant who owns the Policy. Only administrative users can specify a tenant UUID other than their own. Changing this creates a new Policy. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: description: 'Specifies the match content. The value can be one of the following: HOST_NAME, PATH.' @@ -152,12 +302,162 @@ spec: policyId: description: ID of the policy. type: string + policyIdRef: + description: Reference to a PolicyV3 in lb to populate policyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + policyIdSelector: + description: Selector for a PolicyV3 in lb to populate policyId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object projectId: description: |- Required for admins. The UUID of the tenant who owns the Policy. Only administrative users can specify a tenant UUID other than their own. Changing this creates a new Policy. type: string + projectIdRef: + description: Reference to a ProjectV3 in identity to populate + projectId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + projectIdSelector: + description: Selector for a ProjectV3 in identity to populate + projectId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: description: 'Specifies the match content. The value can be one of the following: HOST_NAME, PATH.' @@ -340,10 +640,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.compareType) || (has(self.initProvider) && has(self.initProvider.compareType))' - - message: spec.forProvider.policyId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.policyId) - || (has(self.initProvider) && has(self.initProvider.policyId))' - message: spec.forProvider.type is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.type) diff --git a/package/crds/lb.opentelekomcloud.crossplane.io_whitelistv2s.yaml b/package/crds/lb.opentelekomcloud.crossplane.io_whitelistv2s.yaml deleted file mode 100644 index cb76f82..0000000 --- a/package/crds/lb.opentelekomcloud.crossplane.io_whitelistv2s.yaml +++ /dev/null @@ -1,386 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: whitelistv2s.lb.opentelekomcloud.crossplane.io -spec: - group: lb.opentelekomcloud.crossplane.io - names: - categories: - - crossplane - - managed - - opentelekomcloud - kind: WhitelistV2 - listKind: WhitelistV2List - plural: whitelistv2s - singular: whitelistv2 - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: WhitelistV2 is the Schema for the WhitelistV2s API. Manages a - ELB Whitelist resource within OpenTelekomCloud. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: WhitelistV2Spec defines the desired state of WhitelistV2 - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - enableWhitelist: - description: Specify whether to enable access control. - type: boolean - listenerId: - description: The Listener ID that the whitelist will be associated - with. Changing this creates a new whitelist. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the whitelist. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new whitelist. - type: string - whitelist: - description: |- - Specifies the IP addresses in the whitelist. Use commas(,) to separate - the multiple IP addresses. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - enableWhitelist: - description: Specify whether to enable access control. - type: boolean - listenerId: - description: The Listener ID that the whitelist will be associated - with. Changing this creates a new whitelist. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the whitelist. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new whitelist. - type: string - whitelist: - description: |- - Specifies the IP addresses in the whitelist. Use commas(,) to separate - the multiple IP addresses. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.listenerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.listenerId) - || (has(self.initProvider) && has(self.initProvider.listenerId))' - status: - description: WhitelistV2Status defines the observed state of WhitelistV2. - properties: - atProvider: - properties: - enableWhitelist: - description: Specify whether to enable access control. - type: boolean - id: - description: The unique ID for the whitelist. - type: string - listenerId: - description: The Listener ID that the whitelist will be associated - with. Changing this creates a new whitelist. - type: string - tenantId: - description: |- - Required for admins. The UUID of the tenant who owns - the whitelist. Only administrative users can specify a tenant UUID - other than their own. Changing this creates a new whitelist. - type: string - whitelist: - description: |- - Specifies the IP addresses in the whitelist. Use commas(,) to separate - the multiple IP addresses. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {}